From 75561a846ae6f42da1d05ea3e852d9bccbb03d4f Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Mon, 11 Aug 2025 21:22:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/{ => 1.6}/Assemblies/WulaFallenEmpire.dll | Bin .../WulaSpecies/Constant/Constant.xml | 0 .../WulaSpecies/Constant/Thoughts.xml | 0 .../WulaSpecies/ForJobs/AttackMelee.xml | 0 .../WulaSpecies/ForJobs/AttackStatic.xml | 0 .../WulaSpecies/ForJobs/DoBill.xml | 0 .../WulaSpecies/ForJobs/Goto.xml | 0 .../WulaSpecies/ForJobs/Ingest.xml | 0 .../WulaSpecies/ForJobs/LayDown.xml | 0 .../WulaSpecies/ForJobs/Lovin.xml | 0 .../WulaSpecies/ForJobs/Mine.xml | 0 .../WulaSpecies/ForJobs/RemoveApparel.xml | 0 .../WulaSpecies/ForJobs/Research.xml | 0 .../WulaSpecies/ForJobs/SocialRelax.xml | 0 .../ForJobs/StandAndBeSociallyActive.xml | 0 .../WulaSpecies/ForJobs/Strip.xml | 0 .../WulaSpecies/ForJobs/WaitCombat.xml | 0 .../WulaSpecies/ForJobs/Wait_Downed.xml | 0 .../WulaSpecies/ForJobs/Wear.xml | 0 .../BackstoryDefs/Solid/Solid_Adult_WULA.xml | 0 .../BackstoryDefs/Solid/Solid_Child_WULA.xml | 0 .../Defs/BodyAndPartDefs/Bodyparts_WULA.xml | 0 .../Defs/DamageDefs/Damages_Wula.xml | 0 .../WULA_DesignationCategoryDefs.xml | 0 1.6/{ => 1.6}/Defs/Effects/Mote_Wula.xml | 0 .../Defs/EventDefs/EventDef_Examples.xml | 0 .../Defs/EventDefs/EventDef_VariableTest.xml | 0 .../EventDef_WULA_FE_Spiritualist.xml | 0 .../Defs/EventDefs/EventDef_Wula.xml | 0 .../Defs/FaceShapeDefs/BrowShape.xml | 0 .../Defs/FaceShapeDefs/EmotionShape.xml | 0 1.6/{ => 1.6}/Defs/FaceShapeDefs/EyeShape.xml | 0 .../Defs/FaceShapeDefs/HeadShape.xml | 0 .../Defs/FaceShapeDefs/LidOptionShape.xml | 0 1.6/{ => 1.6}/Defs/FaceShapeDefs/LidShape.xml | 0 .../Defs/FaceShapeDefs/MouthShape.xml | 0 .../Defs/FaceShapeDefs/SkinShape.xml | 0 .../FaceTypeDefs/WulaSpecies/BrowType.xml | 0 .../FaceTypeDefs/WulaSpecies/EmotionType.xml | 0 .../Defs/FaceTypeDefs/WulaSpecies/EyeType.xml | 0 .../FaceTypeDefs/WulaSpecies/HeadType.xml | 0 .../Defs/FaceTypeDefs/WulaSpecies/LidType.xml | 0 .../FaceTypeDefs/WulaSpecies/MouthType.xml | 0 .../FaceTypeDefs/WulaSpecies/SkinType.xml | 0 .../Defs/FactionDefs/Factions_Player_WULA.xml | 0 .../Defs/FleshTypeDefs/FleshType_WULA.xml | 0 1.6/{ => 1.6}/Defs/HairDefs/WULA_Hairs.xml | 0 .../HediffDefs/Hediffs_BodyParts_WULA.xml | 0 .../Defs/HediffDefs/Hediffs_WULA.xml | 0 .../HediffDefs/Hediffs_WULA_Damage_Effect.xml | 0 .../HediffDefs/Hediffs_WULA_Maintenance.xml | 0 .../IncidentDefs/Wula_ScheduledIncidents.xml | 0 1.6/{ => 1.6}/Defs/JobDefs/WULA_JobDefs.xml | 0 .../MentalBreakDefs/MentalBreaks_WULA.xml | 0 .../MentalStates_WULA_Broken.xml | 0 1.6/{ => 1.6}/Defs/NeedDefs/WULA_Needs.xml | 0 .../Defs/PawnKinds/PawnKinds_Wula.xml | 0 .../QuestScriptDefs/Wula_ScheduledEvents.xml | 0 .../Defs/RecipeDefs/Recipes_WULA.xml | 0 .../ResearchProjects_WULA.xml | 0 .../Defs/ResearchTabDef/ResearchTabs_WULA.xml | 0 .../RulePacks_Namers_Factions_Wula.xml | 0 .../Defs/Scenarios/Scenarios_WULA.xml | 0 1.6/{ => 1.6}/Defs/StatDefs/WULA_Stats.xml | 0 .../Defs/StoryTellers/WULA_Storytellers.xml | 0 .../WULA_StyleItemCategoryDefs.xml | 0 1.6/{ => 1.6}/Defs/ThingDefs/WULA_Item.xml | 0 .../Buildings_Structure.xml | 0 .../ThingDefs_Buildings/Buildings_WULA.xml | 0 .../WULA_FallenEmpire_Buildings_Ritual.xml | 0 .../ThingDefs_Misc/Apperals/WULA_Apparel.xml | 0 .../ThingDefs_Misc/Weapons/WULA_Weapon.xml | 0 .../ThingDefs_Races/Races_Wulaspecies.xml | 0 .../Defs/ThinkTreeDefs/WULA_ThinkTrees.xml | 0 .../Defs/ThoughtDefs/Thoughts_WULA.xml | 0 1.6/{ => 1.6}/Defs/TraitDefs/Traits_WULA.xml | 0 .../WULA_WeaponCategoryDefs.xml | 0 .../WeaponTraitDefs/WULA_WeaponTraitDefs.xml | 0 .../Defs/WorkGivers/Wula_WorkGivers.xml | 0 .../WulaMiscSettingDefs/EventUIConfig.xml | 0 .../LetterDefs/EventLetter.xml | 0 .../LifeStageDefs/LifeStages_WULA.xml | 0 .../WulaCaravanEnergyDefs.xml | 0 .../Defs/WulaMiscSettingDefs/WulaHullDef.xml | 0 .../Keyed/WULA_Keyed.xml | 0 .../Keyed/WULA_Ritual_Keys.xml | 0 .../Keyed/WULA_SkillTrainer.xml | 0 {Patches => 1.6/1.6/Patches}/Patch.xml | 0 .../Bodyparts_WULA_FE_Spiritualist.xml | 0 .../Factions_WULA_FE_Spiritualist.xml | 0 .../Hediffs_WULA_FE_Spiritualist.xml | 0 .../PawnKinds_Wula_FE_Spiritualist.xml | 0 .../WULA_FE_Spiritualist_Rituals.xml | 0 .../ResearchProjects_WULA_FE_Spiritualist.xml | 0 .../ResearchTabs_WULA_FE_Spiritualist.xml | 0 .../ThingDefs/WULA_FE_Spiritualist_Item.xml | 0 .../Apperals/WULA_FE_Spiritualist_Apparel.xml | 0 .../Weapons/WULA_FE_Spiritualist_Weapon.xml | 0 .../Races_Wulaspecies_FE_Spiritualist.xml | 0 .../TraderKinds_WULA_FE_Spiritualist.xml | 0 .../Wula/Apparel/WULA_Apperal_Empty.png | Bin .../Apparel/WULA_Assault_Troop_Helmet.png | Bin .../WULA_Assault_Troop_Helmet_east.png | Bin .../WULA_Assault_Troop_Helmet_north.png | Bin .../WULA_Assault_Troop_Helmet_south.png | Bin .../Apparel/WULA_Assault_Troop_PowerArmor.png | Bin ...ULA_Assault_Troop_PowerArmor_Thin_east.png | Bin ...LA_Assault_Troop_PowerArmor_Thin_north.png | Bin ...LA_Assault_Troop_PowerArmor_Thin_south.png | Bin .../Textures}/Wula/Apparel/WULA_Body_Suit.png | Bin .../Wula/Apparel/WULA_Body_Suit_Thin_east.png | Bin .../Apparel/WULA_Body_Suit_Thin_north.png | Bin .../Apparel/WULA_Body_Suit_Thin_south.png | Bin .../Wula/Apparel/WULA_Bodystocking.png | Bin .../Apparel/WULA_Bodystocking_Thin_east.png | Bin .../Apparel/WULA_Bodystocking_Thin_north.png | Bin .../Apparel/WULA_Bodystocking_Thin_south.png | Bin .../Wula/Apparel/WULA_Bodystocking_White.png | Bin .../WULA_Bodystocking_White_Thin_east.png | Bin .../WULA_Bodystocking_White_Thin_north.png | Bin .../WULA_Bodystocking_White_Thin_south.png | Bin .../Apparel/WULA_Heavy_Infantry_Helmet.png | Bin .../WULA_Heavy_Infantry_Helmet_east.png | Bin .../WULA_Heavy_Infantry_Helmet_north.png | Bin .../WULA_Heavy_Infantry_Helmet_south.png | Bin .../WULA_Heavy_Infantry_PowerArmor.png | Bin ...LA_Heavy_Infantry_PowerArmor_Thin_east.png | Bin ...A_Heavy_Infantry_PowerArmor_Thin_north.png | Bin ...A_Heavy_Infantry_PowerArmor_Thin_south.png | Bin .../Wula/Apparel/WULA_Knight_Helmet.png | Bin .../Wula/Apparel/WULA_Knight_Helmet_east.png | Bin .../Wula/Apparel/WULA_Knight_Helmet_north.png | Bin .../Wula/Apparel/WULA_Knight_Helmet_south.png | Bin .../Wula/Apparel/WULA_Knight_PowerArmor.png | Bin .../WULA_Knight_PowerArmor_Thin_east.png | Bin .../WULA_Knight_PowerArmor_Thin_north.png | Bin .../WULA_Knight_PowerArmor_Thin_south.png | Bin .../WULA_Knight_PowerArmor_Thin_west.png | Bin .../Wula/Apparel/WULA_Maid_Uniform.png | Bin .../Apparel/WULA_Maid_Uniform_Headband.png | Bin .../WULA_Maid_Uniform_Headband_east.png | Bin .../WULA_Maid_Uniform_Headband_south.png | Bin .../Apparel/WULA_Maid_Uniform_Thin_east.png | Bin .../Apparel/WULA_Maid_Uniform_Thin_north.png | Bin .../Apparel/WULA_Maid_Uniform_Thin_south.png | Bin .../Wula/Apparel/WULA_Nun_Uniform.png | Bin .../Apparel/WULA_Nun_Uniform_Thin_east.png | Bin .../Apparel/WULA_Nun_Uniform_Thin_north.png | Bin .../Apparel/WULA_Nun_Uniform_Thin_south.png | Bin .../Apparel/WULA_Nun_Uniform_Thin_west.png | Bin .../Textures}/Wula/Apparel/WULA_Nun_veil.png | Bin .../Wula/Apparel/WULA_Nun_veil_east.png | Bin .../Wula/Apparel/WULA_Nun_veil_north.png | Bin .../Wula/Apparel/WULA_Nun_veil_south.png | Bin .../Wula/Apparel/WULA_Nurse_Uniform.png | Bin .../Apparel/WULA_Nurse_Uniform_Headband.png | Bin .../WULA_Nurse_Uniform_Headband_east.png | Bin .../WULA_Nurse_Uniform_Headband_north.png | Bin .../WULA_Nurse_Uniform_Headband_south.png | Bin .../Apparel/WULA_Nurse_Uniform_Thin_east.png | Bin .../Apparel/WULA_Nurse_Uniform_Thin_north.png | Bin .../Apparel/WULA_Nurse_Uniform_Thin_south.png | Bin .../Apparel/WULA_Nurse_Uniform_Thin_west.png | Bin .../Wula/Apparel/WULA_Priest_Hat.png | Bin .../Wula/Apparel/WULA_Priest_Hat_east.png | Bin .../Wula/Apparel/WULA_Priest_Hat_north.png | Bin .../Wula/Apparel/WULA_Priest_Hat_south.png | Bin .../Wula/Apparel/WULA_Priest_Uniform.png | Bin .../Apparel/WULA_Priest_Uniform_Thin_east.png | Bin .../WULA_Priest_Uniform_Thin_north.png | Bin .../WULA_Priest_Uniform_Thin_south.png | Bin .../Textures}/Wula/Apparel/WULA_Qipao.png | Bin .../Wula/Apparel/WULA_Qipao_Thin_east.png | Bin .../Wula/Apparel/WULA_Qipao_Thin_north.png | Bin .../Wula/Apparel/WULA_Qipao_Thin_south.png | Bin .../Wula/Apparel/WULA_Sailor_Dress.png | Bin .../Apparel/WULA_Sailor_Dress_Thin_east.png | Bin .../Apparel/WULA_Sailor_Dress_Thin_north.png | Bin .../Apparel/WULA_Sailor_Dress_Thin_south.png | Bin .../Wula/Apparel/WULA_Shield_Base.png | Bin .../Apparel/WULA_Shield_Base_Thin_east.png | Bin .../Apparel/WULA_Shield_Base_Thin_north.png | Bin .../Apparel/WULA_Shield_Base_Thin_south.png | Bin .../Wula/Apparel/WULA_Shield_Prismatic.png | Bin .../WULA_Shield_Prismatic_Thin_east.png | Bin .../WULA_Shield_Prismatic_Thin_north.png | Bin .../WULA_Shield_Prismatic_Thin_south.png | Bin .../Wula/Apparel/WULA_Skitarii_Uniform.png | Bin .../WULA_Skitarii_Uniform_Thin_east.png | Bin .../WULA_Skitarii_Uniform_Thin_north.png | Bin .../WULA_Skitarii_Uniform_Thin_south.png | Bin .../Wula/Apparel/WULA_Skitarii_veil.png | Bin .../Wula/Apparel/WULA_Skitarii_veil_east.png | Bin .../Wula/Apparel/WULA_Skitarii_veil_north.png | Bin .../Wula/Apparel/WULA_Skitarii_veil_south.png | Bin .../Wula/Apparel/WULA_official_uniform.png | Bin .../WULA_official_uniform_Thin_east.png | Bin .../WULA_official_uniform_Thin_north.png | Bin .../WULA_official_uniform_Thin_south.png | Bin .../WULA_official_uniform_Thin_west.png | Bin .../Wula/Building/Door/WulaAutodoor.png | Bin .../Building/Door/WulaAutodoor_BluePrint.png | Bin .../Wula/Building/Door/WulaAutodoor_Mover.png | Bin .../Building/Door/WulaAutodoor_Mover_east.png | Bin .../Door/WulaAutodoor_Mover_south.png | Bin .../Wula/Building/Door/WulaAutodoor_east.png | Bin .../Wula/Building/Door/WulaAutodoor_south.png | Bin .../Linked/WULA_Fortress_Wall_Blueprint.png | Bin .../Linked/WULA_Fortress_Wall_MenuIcon.png | Bin .../AngledWulaWall_Partial_northeast.png | Bin .../AngledWulaWall_Partial_northwest.png | Bin .../AngledWulaWall_Partial_southeast.png | Bin .../AngledWulaWall_Partial_southwest.png | Bin .../WulaWall/AngledWulaWall_northeast.png | Bin .../WulaWall/AngledWulaWall_northwest.png | Bin .../WulaWall/AngledWulaWall_southeast.png | Bin .../WulaWall/AngledWulaWall_southwest.png | Bin .../WulaWall/SubstructureCorner_Full_east.psd | Bin .../WulaWall/SubstructureCorner_Full_west.psd | Bin .../WulaWall/SubstructureCorner_Tip_east.psd | Bin .../WulaWall/SubstructureCorner_Tip_west.psd | Bin .../Linked/WulaWall/WulaWall_Atlas.png | Bin .../WULA_Charging_Station_Synth_east.png | Bin .../WULA_Charging_Station_Synth_north.png | Bin .../WULA_Charging_Station_Synth_south.png | Bin .../Building/WULA_Communicator_Station.png | Bin .../Building/WULA_Cube_Productor_BIO_east.png | Bin .../WULA_Cube_Productor_BIO_north.png | Bin .../WULA_Cube_Productor_BIO_south.png | Bin .../WULA_Cube_Productor_Component_east.png | Bin .../WULA_Cube_Productor_Component_north.png | Bin .../WULA_Cube_Productor_Component_south.png | Bin .../WULA_Cube_Productor_Energy_east.png | Bin .../WULA_Cube_Productor_Energy_north.png | Bin .../WULA_Cube_Productor_Energy_south.png | Bin .../Textures}/Wula/Building/WULA_Floor.png | Bin .../Wula/Building/WULA_Floor_Icon.png | Bin .../WULA_Heavy_War_Machine_Productor_east.png | Bin ...WULA_Heavy_War_Machine_Productor_north.png | Bin ...WULA_Heavy_War_Machine_Productor_south.png | Bin .../Building/WULA_Nourishment_Center_Unit.png | Bin .../Building/WULA_Synth_Maintainer_south.png | Bin .../Wula/Building/WULA_Synth_Server_east.png | Bin .../Wula/Building/WULA_Synth_Server_north.png | Bin .../Wula/Building/WULA_Synth_Server_south.png | Bin .../Wula/Building/WULA_Turret_Component.png | Bin .../Building/WULA_WM_Panzer_Autocannon.png | Bin .../Wula_AI_Heavy_Panzer_Gunnery_Turret.png | Bin .../Building/Wula_DarkEnergy_FuelTank.png | Bin .../Wula_DarkEnergy_FuelTank_east.png | Bin .../Wula_DarkEnergy_FuelTank_north.png | Bin .../Wula_DarkEnergy_FuelTank_south.png | Bin .../Wula/Events/Portraits/WULA_Anisia_1.png | Bin .../Wula/Events/Portraits/WULA_Anisia_2.png | Bin .../Wula/Events/Portraits/WULA_Anisia_3.png | Bin .../Wula/Events/Portraits/WULA_Anisia_4.png | Bin .../Wula/Events/Portraits/WULA_Anisia_5.png | Bin .../Wula/Events/Portraits/WULA_Anisia_6.png | Bin .../Portraits/WULA_FE_Spiritualist_1.png | Bin .../Portraits/WULA_FE_Spiritualist_2.png | Bin .../Portraits/WULA_FE_Spiritualist_3.png | Bin .../Portraits/WULA_FE_Spiritualist_4.png | Bin .../Wula/Events/Portraits/Wula_insignal.png | Bin .../Hair/WULA_Double_Ponytail_Long_east.png | Bin .../Hair/WULA_Double_Ponytail_Long_north.png | Bin .../Hair/WULA_Double_Ponytail_Long_south.png | Bin .../Wula/Hair/WULA_High_Ponytail_east.png | Bin .../Wula/Hair/WULA_High_Ponytail_north.png | Bin .../Wula/Hair/WULA_High_Ponytail_south.png | Bin .../Wula/Hair/WULA_One_Side_Ponytail_east.png | Bin .../Hair/WULA_One_Side_Ponytail_north.png | Bin .../Hair/WULA_One_Side_Ponytail_south.png | Bin .../Wula/Hair/WULA_One_Side_Ponytail_west.png | Bin .../Hair/WULA_Rotational_Ponytail_east.png | Bin .../Hair/WULA_Rotational_Ponytail_north.png | Bin .../Hair/WULA_Rotational_Ponytail_south.png | Bin .../Hair/WULA_Scattered_Hair_Long_east.png | Bin .../Hair/WULA_Scattered_Hair_Long_north.png | Bin .../Hair/WULA_Scattered_Hair_Long_south.png | Bin .../Textures}/Wula/Item/WULA_Charge_Cube.png | Bin .../Wula/Item/WULA_Dark_Matter_Item.png | Bin .../Textures}/Wula/Item/WULA_Default_Item.png | Bin .../Wula/Item/WULA_MechRepairKit.png | Bin .../Textures}/Wula/Item/WULA_Neutronium.png | Bin .../Textures}/Wula/Item/WULA_Soul_Wedge.png | Bin .../Wula/Item/WULA_Syhth_Passion_Trainer.png | Bin .../Wula/Item/WULA_Syhth_Trainer.png | Bin .../Wula/Item/WULA_charge_cube_No_Power.png | Bin .../Textures}/Wula/Item/Wula_Zro.png | Bin .../Mote/WULA_Bullet_Dark_Matter_Beam.png | Bin .../WULA_Bullet_ChargeLanceShot_Red.png | Bin ...WULA_Bullet_ChargeLanceShot_Red_Double.png | Bin .../WULA_Bullet_StarDrift_Shotgun_Spear.png | Bin .../Wula/Projectile/WULA_Mortar_Shell.png | Bin .../Wula/Projectile/WULA_Photon_Missile.png | Bin .../Wula/Projectile/WULA_Shrapnel.png | Bin .../Wula/Storyteller/WULA_Anisia.png | Bin .../Wula/Storyteller/WULA_Anisia_TINY.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../WULA_Assault_Cat/WULA_Cat_Thin_east.png | Bin .../WULA_Assault_Cat/WULA_Cat_Thin_north.png | Bin .../WULA_Assault_Cat/WULA_Cat_Thin_south.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../WULA_Attack_Cat/WULA_Cat_Thin_east.png | Bin .../WULA_Attack_Cat/WULA_Cat_Thin_north.png | Bin .../WULA_Attack_Cat/WULA_Cat_Thin_south.png | Bin .../WULA_Cat/AllegianceOverlays/None_east.dds | Bin .../WULA_Cat/AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../Things/WULA_Cat/WULA_Cat_Thin_east.png | Bin .../Things/WULA_Cat/WULA_Cat_Thin_north.png | Bin .../Things/WULA_Cat/WULA_Cat_Thin_south.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../WULA_Commander_Cat/WULA_Cat_Thin_east.png | Bin .../WULA_Cat_Thin_north.png | Bin .../WULA_Cat_Thin_south.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../WULA_Cat_Thin_east.png | Bin .../WULA_Cat_Thin_north.png | Bin .../WULA_Cat_Thin_south.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../Things/WULA_DM_Cat/WULA_Cat_Thin_east.png | Bin .../WULA_DM_Cat/WULA_Cat_Thin_north.png | Bin .../WULA_DM_Cat/WULA_Cat_Thin_south.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../WULA_bomb_Cat/WULA_Cat_Thin_east.png | Bin .../WULA_bomb_Cat/WULA_Cat_Thin_north.png | Bin .../WULA_bomb_Cat/WULA_Cat_Thin_south.png | Bin .../Addons/WULA_Addons_Antenna_east.png | Bin .../Addons/WULA_Addons_Antenna_north.png | Bin .../Addons/WULA_Addons_Antenna_south.png | Bin .../WulaSpecies/Bodies/Naked_Thin_east.png | Bin .../WulaSpecies/Bodies/Naked_Thin_north.png | Bin .../WulaSpecies/Bodies/Naked_Thin_south.png | Bin .../Brows/Normal/Unisex/angled_east.png | Bin .../Brows/Normal/Unisex/angled_south.png | Bin .../Brows/Normal/Unisex/flat_east.png | Bin .../Brows/Normal/Unisex/flat_south.png | Bin .../Brows/Normal/Unisex/normal_east.png | Bin .../Brows/Normal/Unisex/normal_south.png | Bin .../Brows/Normal/Unisex/s-shaped_east.png | Bin .../Brows/Normal/Unisex/s-shaped_south.png | Bin .../Eyes/Common/Unisex/normal_L_east.png | Bin .../Eyes/Common/Unisex/normal_L_south.png | Bin .../Eyes/Common/Unisex/normal_L_west.png | Bin .../Eyes/Common/Unisex/normal_R_east.png | Bin .../Eyes/Common/Unisex/normal_R_south.png | Bin .../Eyes/Common/Unisex/normal_R_west.png | Bin .../Eyes/Normal/Unisex/normal_east.png | Bin .../Normal/Unisex/normal_highlight_east.png | Bin .../Normal/Unisex/normal_highlight_south.png | Bin .../Eyes/Normal/Unisex/normal_south.png | Bin .../WulaSpecies/Heads/Average_Normal_east.png | Bin .../Heads/Average_Normal_north.png | Bin .../Heads/Average_Normal_south.png | Bin .../WulaSpecies/Heads/Average_Normal_west.png | Bin .../Heads_Blank/Normal/Unisex/blush_east.png | Bin .../Heads_Blank/Normal/Unisex/blush_north.png | Bin .../Heads_Blank/Normal/Unisex/blush_south.png | Bin .../Heads_Blank/Normal/Unisex/blush_west.png | Bin .../Heads_Blank/Normal/Unisex/normal_east.png | Bin .../Normal/Unisex/normal_north.png | Bin .../Normal/Unisex/normal_south.png | Bin .../Heads_Blank/Normal/Unisex/normal_west.png | Bin .../Normal/Unisex/part_blush_east.png | Bin .../Normal/Unisex/part_blush_south.png | Bin .../Normal/Unisex/part_normal_east.png | Bin .../Normal/Unisex/part_normal_south.png | Bin .../Lids/Normal/Unisex/close_east.png | Bin .../Lids/Normal/Unisex/close_south.png | Bin .../Lids/Normal/Unisex/normal_east.png | Bin .../Lids/Normal/Unisex/normal_south.png | Bin .../Mouth/Normal/Unisex/normal_east.png | Bin .../Mouth/Normal/Unisex/normal_south.png | Bin .../Mouth/Normal/Unisex/open_east.png | Bin .../Mouth/Normal/Unisex/open_south.png | Bin .../Skins/LeftChin/Unisex/normal_east.png | Bin .../Skins/LeftChin/Unisex/normal_north.png | Bin .../Skins/LeftChin/Unisex/normal_south.png | Bin .../Skins/LeftChin/Unisex/normal_west.png | Bin .../Skins/RightEye/Unisex/normal_east.png | Bin .../Skins/RightEye/Unisex/normal_north.png | Bin .../Skins/RightEye/Unisex/normal_south.png | Bin .../Skins/RightEye/Unisex/normal_west.png | Bin .../Things/WulaSpecies/WULA_Species_Icon.png | Bin .../Wounds/WULA_Species_Wound_None.png | Bin .../Addons/WULA_Bow_Tie_east.png | Bin .../Addons/WULA_Bow_Tie_north.png | Bin .../Addons/WULA_Bow_Tie_south.png | Bin .../Bodies/Naked_Thin_east.png | Bin .../Bodies/Naked_Thin_north.png | Bin .../Bodies/Naked_Thin_south.png | Bin .../Heads/Average_Normal_north.png | Bin .../Heads/Average_Normal_south.png | Bin .../Heads/Average_Normal_west.png | Bin .../Heads_Blank/Normal/Unisex/blush_east.png | Bin .../Heads_Blank/Normal/Unisex/blush_north.png | Bin .../Heads_Blank/Normal/Unisex/blush_south.png | Bin .../Heads_Blank/Normal/Unisex/normal_east.png | Bin .../Normal/Unisex/normal_north.png | Bin .../Normal/Unisex/normal_south.png | Bin .../Normal/Unisex/part_blush_east.png | Bin .../Normal/Unisex/part_blush_south.png | Bin .../Normal/Unisex/part_normal_east.png | Bin .../Normal/Unisex/part_normal_south.png | Bin .../WulaSpeciesReal/WULA_Species_Icon.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../Bodies/Naked_Thin_east.png | Bin .../Bodies/Naked_Thin_north.png | Bin .../Bodies/Naked_Thin_south.png | Bin .../Wula_AI_Bomb_Mother_Icon.png | Bin .../AllegianceOverlays/None_east.dds | Bin .../AllegianceOverlays/None_east.png | Bin .../AllegianceOverlays/None_north.dds | Bin .../AllegianceOverlays/None_north.png | Bin .../AllegianceOverlays/None_south.dds | Bin .../AllegianceOverlays/None_south.png | Bin .../Bodies/Naked_Thin_east.png | Bin .../Bodies/Naked_Thin_north.png | Bin .../Bodies/Naked_Thin_south.png | Bin .../Wula_AI_Heavy_Panzer_Icon.png | Bin .../Wula_Armour/Bodies/Naked_Thin_east.png | Bin .../Wula_Armour/Bodies/Naked_Thin_north.png | Bin .../Wula_Armour/Bodies/Naked_Thin_south.png | Bin .../Wula_Armour/Heads/Average_Normal_east.png | Bin .../Heads/Average_Normal_north.png | Bin .../Heads/Average_Normal_south.png | Bin .../Things/Wula_Armour/Wula_Armour_Icon.png | Bin .../Wula_Armour/abandon/Naked_Thin_east.png | Bin .../Wula_Armour/abandon/Naked_Thin_north.png | Bin .../Wula_Armour/abandon/Naked_Thin_south.png | Bin .../Wula_Psi_Titan/Bodies/Naked_Thin_east.png | Bin .../Bodies/Naked_Thin_north.png | Bin .../Bodies/Naked_Thin_south.png | Bin .../Heads/Average_Normal_east.png | Bin .../Heads/Average_Normal_north.png | Bin .../Heads/Average_Normal_south.png | Bin .../Wula_Psi_Titan/Wula_Psi_Titan_Icon.png | Bin .../WULA_MW_Scepter_Of_CLoak_Ability.png | Bin .../WULA_MW_Scepter_Of_Explosive_Ability.png | Bin .../WULA_MW_Scepter_Of_Feather_Ability.png | Bin .../WULA_MW_Scepter_Of_Flash_Ability.png | Bin .../WULA_MW_Scepter_Of_Lost_Ability.png | Bin .../WULA_MW_Scepter_Of_Perception_Ability.png | Bin .../WULA_Scepter_Of_Heaven_Ability.png | Bin .../Wula/Weapon/WULA_MW_Armour_Lance.png | Bin .../Wula/Weapon/WULA_MW_Breaker_Bar.png | Bin .../Wula/Weapon/WULA_MW_ChainSword.png | Bin .../Wula/Weapon/WULA_MW_Charge_Mace.png | Bin .../Weapon/WULA_MW_Constructor_Hammer.png | Bin .../Textures}/Wula/Weapon/WULA_MW_Glaive.png | Bin .../Textures}/Wula/Weapon/WULA_MW_Lance.png | Bin .../Textures}/Wula/Weapon/WULA_MW_Mace.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png | Bin .../Weapon/WULA_MW_Scepter_Of_Explosive.png | Bin .../Weapon/WULA_MW_Scepter_Of_Feather.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Flash.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Lost.png | Bin .../Weapon/WULA_MW_Scepter_Of_Perception.png | Bin .../Wula/Weapon/WULA_RW_AutoCannon.png | Bin .../Textures}/Wula/Weapon/WULA_RW_Auto_GL.png | Bin .../Textures}/Wula/Weapon/WULA_RW_Base_AR.png | Bin .../Wula/Weapon/WULA_RW_Base_AR_Cat.png | Bin .../Textures}/Wula/Weapon/WULA_RW_DM_AR.png | Bin .../Wula/Weapon/WULA_RW_DM_Cannon.png | Bin .../Wula/Weapon/WULA_RW_Fractal_RF.png | Bin .../Wula/Weapon/WULA_RW_Handle_Cannon.png | Bin .../Wula/Weapon/WULA_RW_Photon_Missile.png | Bin .../Wula/Weapon/WULA_RW_Sphene_MG.png | Bin .../Wula/Weapon/WULA_RW_StarDrift_SG.png | Bin .../Wula/Weapon/WULA_SP_Cotton_Counter.png | Bin .../Wula/Weapon/WULA_SP_Live_Shelter.png | Bin .../Wula/Weapon/WULA_SP_Mist_Incinerator.png | Bin .../Wula/Weapon/WULA_SP_Spear_Impale.png | Bin .../Wula/Weapon/WULA_SP_Spell_Medium.png | Bin .../Wula/Weapon/WULA_WM_Panzer_Autocannon.png | Bin .../Wula/Weapon/WULA_WM_Panzer_Turret.png | Bin .../Wula/Weapon/WULA_Weapon_Empty.png | Bin .../Wula_Broken_Personality_Faction.png | Bin .../Expanding/Wula_FE_Faction.png | Bin LoadFolders.xml | 6 +- MCP/mcpserver.log | 687 +++ {Source/MCP => MCP}/mcpserver_stdio.py | 0 MCP/pid.txt | 1 + MCP/vector_cache/AbilityDef.txt | 621 +++ .../AddHumanlikeOrders-FloatMenuMakerMap.txt | 519 +++ MCP/vector_cache/BiosculpterPod-ThingDef.txt | 1502 ++++++ MCP/vector_cache/BiosculpterPod.txt | 74 + MCP/vector_cache/Building_Bed.txt | 1122 +++++ ...bDefOf-JobDriver_CarryToBiosculpterPod.txt | 198 + .../ColonistBarColonistDrawer-DrawIcons.txt | 985 ++++ ...lpterPod-CompProperties_BiosculpterPod.txt | 1485 ++++++ ...pterPod-WorkGiver_HaulToBiosculpterPod.txt | 91 + .../CompProperties_Refuelable.txt | 881 ++++ MCP/vector_cache/CryptosleepCasket.txt | 267 ++ MCP/vector_cache/HediffDef-Luciferium.txt | 118 + MCP/vector_cache/HediffDef-Malnutrition.txt | 750 +++ MCP/vector_cache/Human-ThingDef.txt | 2691 +++++++++++ .../HumanlikeAdult-LifeStageDef.txt | 134 + MCP/vector_cache/JobDef.txt | 115 + .../JobDefOf-JobDriver_TakeToBed-Rescue.txt | 827 ++++ .../JobDriver_EnterCryptosleepCasket.txt | 70 + MCP/vector_cache/PawnKindDef-lifeStages.txt | 535 +++ ...entoryTracker-get_FirstUnloadableThing.txt | 4149 +++++++++++++++++ .../Projectile-TickInterval-Verse.txt | 655 +++ MCP/vector_cache/PsychicRitualDef.txt | 871 ++++ .../PsychicRitualDef_InvocationCircle.txt | 573 +++ .../PsychicRitualToil_GatherForInvocation.txt | 103 + .../PsychicRitualToil_GatherOfferings.txt | 270 ++ ...Source-StartCarryThing-Toil-Toils_Haul.txt | 1333 ++++++ MCP/vector_cache/StatDef.txt | 502 ++ MCP/vector_cache/WorkGiver_Scanner.txt | 507 ++ .../EventSystem_Documentation.md | 0 .../Documentation}/layout_preview.html | 0 Source/MCP/python-sdk | 1 - .../Wula/Apparel/WULA_Assault_Troop_Helmet_south.sai2 | Bin .../Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Body_Suit_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Bodystocking_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Bodystocking_White_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.sai2 | Bin .../Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Knight_Helmet_south.sai2 | Bin .../Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Maid_Uniform_Headband.sai2 | Bin .../Wula/Apparel/WULA_Maid_Uniform_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Nun_Uniform_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Nun_veil_south.sai2 | Bin .../Wula/Apparel/WULA_Nurse_Uniform_Headband_south.sai2 | Bin .../Wula/Apparel/WULA_Nurse_Uniform_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Priest_Hat_south.sai2 | Bin .../Wula/Apparel/WULA_Priest_Uniform_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Qipao_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Sailor_Dress_Thin_east.sai2 | Bin .../Wula/Apparel/WULA_Sailor_Dress_Thin_north.sai2 | Bin .../Wula/Apparel/WULA_Sailor_Dress_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Shield_Base_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Shield_Prismatic_Thin_north.sai2 | Bin .../Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.sai2 | Bin .../Wula/Apparel/WULA_Skitarii_veil_south.sai2 | Bin .../Wula/Apparel/WULA_official_uniform_Thin_south.sai2 | Bin .../Wula/Building/Door/WulaAutodoor.png | Bin .../Wula/Building/Door/WulaAutodoor_BluePrint.png | Bin .../Wula/Building/Door/WulaAutodoor_Mover.png | Bin .../Wula/Building/Door/WulaAutodoor_Mover.sai2 | Bin .../Wula/Building/Door/WulaAutodoor_Mover_east.png | Bin .../Wula/Building/Door/WulaAutodoor_Mover_south.png | Bin .../Wula/Building/Door/WulaAutodoor_east.png | Bin .../Wula/Building/Door/WulaAutodoor_south.png | Bin .../Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png | Bin .../Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png | Bin .../Linked/WulaWall/AngledWulaWall_Partial_northeast.png | Bin .../Linked/WulaWall/AngledWulaWall_Partial_northwest.png | Bin .../Linked/WulaWall/AngledWulaWall_Partial_southeast.png | Bin .../Linked/WulaWall/AngledWulaWall_Partial_southwest.png | Bin .../Building/Linked/WulaWall/AngledWulaWall_northeast.png | Bin .../Building/Linked/WulaWall/AngledWulaWall_northwest.png | Bin .../Building/Linked/WulaWall/AngledWulaWall_northwest.sai2 | Bin .../Building/Linked/WulaWall/AngledWulaWall_southeast.png | Bin .../Building/Linked/WulaWall/AngledWulaWall_southwest.png | Bin .../Building/Linked/WulaWall/SubstructureCorner_Full_east.psd | Bin .../Building/Linked/WulaWall/SubstructureCorner_Full_west.psd | Bin .../Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd | Bin .../Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd | Bin .../Building/Linked/WulaWall/WULA_Fortress_Wall_Smooth.sai2 | Bin .../Wula/Building/Linked/WulaWall/WulaWall_Atlas.png | Bin .../美术与文本源文件}/Wula/Building/WULA_Chair.sai2 | Bin .../Wula/Building/WULA_Charging_Station_Synth_south.sai2 | Bin .../Wula/Building/WULA_Communicator_Station.sai2 | Bin .../Wula/Building/WULA_Cube_Productor_BIO.sai2 | Bin .../Wula/Building/WULA_Cube_Productor_Component.sai2 | Bin .../Wula/Building/WULA_Heavy_War_Machine_Productor_south.sai2 | Bin .../Wula/Building/WULA_Nourishment_Center_Unit.sai2 | Bin .../Wula/Building/WULA_Synth_Maintainer_south.sai2 | Bin .../Wula/Building/WULA_Synth_Server_south.sai2 | Bin .../Wula/Building/WULA_Turret_Component.sai2 | Bin .../Wula/Building/Wula_DarkEnergy_FuelTank.sai2 | Bin .../Wula/Hair/WULA_Double_Ponytail_Long_east.png | Bin .../Wula/Hair/WULA_Double_Ponytail_Long_north.png | Bin .../Wula/Hair/WULA_Double_Ponytail_Long_south.png | Bin .../Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 | Bin .../Wula/Hair/WULA_High_Ponytail_east.png | Bin .../Wula/Hair/WULA_High_Ponytail_north.png | Bin .../Wula/Hair/WULA_High_Ponytail_south.png | Bin .../Wula/Hair/WULA_High_Ponytail_south.sai2 | Bin .../Wula/Hair/WULA_One_Side_Ponytail_east.png | Bin .../Wula/Hair/WULA_One_Side_Ponytail_north.png | Bin .../Wula/Hair/WULA_One_Side_Ponytail_south.png | Bin .../Wula/Hair/WULA_One_Side_Ponytail_south.sai2 | Bin .../Wula/Hair/WULA_One_Side_Ponytail_west.png | Bin .../Wula/Hair/WULA_Rotational_Ponytail_east.png | Bin .../Wula/Hair/WULA_Rotational_Ponytail_north.png | Bin .../Wula/Hair/WULA_Rotational_Ponytail_south.png | Bin .../Wula/Hair/WULA_Rotational_Ponytail_south.sai2 | Bin .../Wula/Hair/WULA_Scattered_Hair_Long_east.png | Bin .../Wula/Hair/WULA_Scattered_Hair_Long_north.png | Bin .../Wula/Hair/WULA_Scattered_Hair_Long_south.png | Bin .../Wula/Hair/WULA_Scattered_Hair_Long_south.sai2 | Bin .../Wula/Hair/WULA_Sidelocks_south.sai2 | Bin .../Wula/Item/WULA_Charge_Cube_No_Power.sai2 | Bin .../Wula/Item/WULA_Dark_Matter_Item.sai2 | Bin .../Wula/Item/WULA_Default_Item.sai2 | Bin .../Wula/Item/WULA_MechRepairKit.sai2 | Bin .../美术与文本源文件}/Wula/Item/WULA_Neutronium.sai2 | Bin .../美术与文本源文件}/Wula/Item/WULA_Soul_Wedge.sai2 | Bin .../Wula/Item/WULA_Syhth_Passion_Trainer.sai2 | Bin .../Wula/Item/WULA_Syhth_Trainer.sai2 | Bin .../美术与文本源文件}/Wula/Item/WULA_charge_cube.sai2 | Bin .../美术与文本源文件}/Wula/Item/Wula_Zro.sai2 | Bin .../Wula/Mote/BeamSecondaryNoise_A.psd | Bin .../Wula/Mote/BeamSecondaryNoise_B.psd | Bin .../美术与文本源文件}/Wula/Mote/GraserBeam.psd | Bin .../Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png | Bin .../Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png | Bin .../Wula/Projectile/WULA_Bullet_Dark_Matter_Beam.png | Bin .../Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png | Bin .../Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.sai2 | Bin .../Wula/Projectile/WULA_Mortar_Shell.png | Bin .../Wula/Projectile/WULA_Photon_Missile.png | Bin .../Wula/Projectile/WULA_Shrapnel.png | Bin .../Wula/Storyteller/WULA_Anisia.png | Bin .../Wula/Storyteller/WULA_Anisia_TINY.png | Bin .../Wula/Storyteller/艾妮西娅/艾妮西娅-修女.sai2 | Bin .../Wula/Storyteller/艾妮西娅/艾妮西娅-修女特殊.sai2 | Bin .../Wula/Storyteller/艾妮西娅/艾妮西娅-女仆.sai2 | Bin .../Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.png | Bin .../Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.sai2 | Bin .../Wula/Storyteller/艾妮西娅/艾妮西娅-默认.sai2 | Bin .../Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds | Bin .../Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png | Bin .../Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds | Bin .../Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png | Bin .../Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds | Bin .../Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 | Bin .../Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds | Bin .../Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png | Bin .../Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds | Bin .../Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png | Bin .../Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds | Bin .../Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.sai2 | Bin .../Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds | Bin .../Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png | Bin .../Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds | Bin .../Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png | Bin .../Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds | Bin .../Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_Cat/WULA_Cat_Thin_south.sai2 | Bin .../WULA_Commander_Cat/AllegianceOverlays/None_east.dds | Bin .../WULA_Commander_Cat/AllegianceOverlays/None_east.png | Bin .../WULA_Commander_Cat/AllegianceOverlays/None_north.dds | Bin .../WULA_Commander_Cat/AllegianceOverlays/None_north.png | Bin .../WULA_Commander_Cat/AllegianceOverlays/None_south.dds | Bin .../WULA_Commander_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.sai2 | Bin .../WULA_Constructor_Cat/AllegianceOverlays/None_east.dds | Bin .../WULA_Constructor_Cat/AllegianceOverlays/None_east.png | Bin .../WULA_Constructor_Cat/AllegianceOverlays/None_north.dds | Bin .../WULA_Constructor_Cat/AllegianceOverlays/None_north.png | Bin .../WULA_Constructor_Cat/AllegianceOverlays/None_south.dds | Bin .../WULA_Constructor_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.sai2 | Bin .../Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds | Bin .../Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png | Bin .../Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds | Bin .../Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png | Bin .../Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds | Bin .../Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.sai2 | Bin .../Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds | Bin .../Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png | Bin .../Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds | Bin .../Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png | Bin .../Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds | Bin .../Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png | Bin .../Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png | Bin .../Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png | Bin .../Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png | Bin .../Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.sai2 | Bin .../Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png | Bin .../Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png | Bin .../Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png | Bin .../Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 | Bin .../Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png | Bin .../Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.sai2 | Bin .../Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png | Bin .../Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png | Bin .../Wula/Things/WulaSpecies/Heads/Average_Normal_east.png | Bin .../Wula/Things/WulaSpecies/Heads/Average_Normal_north.png | Bin .../Wula/Things/WulaSpecies/Heads/Average_Normal_south.png | Bin .../Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 | Bin .../Wula/Things/WulaSpecies/Heads/Average_Normal_west.png | Bin .../Wula/Things/WulaSpecies/WULA_Species_Icon.png | Bin .../Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png | Bin .../Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds | Bin .../Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png | Bin .../Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds | Bin .../Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png | Bin .../Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds | Bin .../Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png | Bin .../Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png | Bin .../Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.sai2 | Bin .../Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png | Bin .../Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png | Bin .../Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png | Bin .../Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds | Bin .../Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png | Bin .../Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds | Bin .../Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png | Bin .../Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds | Bin .../Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png | Bin .../Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png | Bin .../Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 | Bin .../Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png | Bin .../Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png | Bin .../Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png | Bin .../Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png | Bin .../Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.sai2 | Bin .../Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png | Bin .../Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png | Bin .../Wula/Things/Wula_Armour/Heads/Average_Normal_east.png | Bin .../Wula/Things/Wula_Armour/Heads/Average_Normal_north.png | Bin .../Wula/Things/Wula_Armour/Heads/Average_Normal_south.png | Bin .../Wula/Things/Wula_Armour/Wula_Armour_Icon.png | Bin .../Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png | Bin .../Wula/Things/Wula_Armour/abandon/Naked_Thin_east.sai2 | Bin .../Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png | Bin .../Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png | Bin .../Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png | Bin .../Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.sai2 | Bin .../Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png | Bin .../Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png | Bin .../Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png | Bin .../Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png | Bin .../Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png | Bin .../Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png | Bin .../Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png | Bin .../UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png | Bin .../Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png | Bin .../Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png | Bin .../Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png | Bin .../UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png | Bin .../Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png | Bin .../美术与文本源文件}/Wula/UI/EventUI/新建画布1.sai2 | Bin .../Wula/Weapon/WULA_MW_Armour_Lance.png | Bin .../Wula/Weapon/WULA_MW_Armour_Lance.sai2 | Bin .../Wula/Weapon/WULA_MW_Breaker_Bar.png | Bin .../Wula/Weapon/WULA_MW_Breaker_Bar.sai2 | Bin .../Wula/Weapon/WULA_MW_ChainSword.png | Bin .../Wula/Weapon/WULA_MW_ChainSword.sai2 | Bin .../Wula/Weapon/WULA_MW_Charge_Mace.png | Bin .../Wula/Weapon/WULA_MW_Charge_Mace.sai2 | Bin .../Wula/Weapon/WULA_MW_Constructor_Hammer.png | Bin .../Wula/Weapon/WULA_MW_Constructor_Hammer.sai2 | Bin .../美术与文本源文件}/Wula/Weapon/WULA_MW_Glaive.png | Bin .../美术与文本源文件}/Wula/Weapon/WULA_MW_Lance.png | Bin .../美术与文本源文件}/Wula/Weapon/WULA_MW_Lance.sai2 | Bin .../美术与文本源文件}/Wula/Weapon/WULA_MW_Mace.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_CLoak.sai2 | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Explosive.sai2 | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Feather.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Feather.sai2 | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Flash.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Flash.sai2 | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Heaven.sai2 | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Lost.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Lost.sai2 | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Perception.png | Bin .../Wula/Weapon/WULA_MW_Scepter_Of_Perception.sai2 | Bin .../Wula/Weapon/WULA_RW_AutoCannon.png | Bin .../Wula/Weapon/WULA_RW_AutoCannon.sai2 | Bin .../美术与文本源文件}/Wula/Weapon/WULA_RW_Auto_GL.png | Bin .../Wula/Weapon/WULA_RW_Auto_GL.sai2 | Bin .../美术与文本源文件}/Wula/Weapon/WULA_RW_Base_AR.png | Bin .../Wula/Weapon/WULA_RW_Base_AR_Cat.png | Bin .../美术与文本源文件}/Wula/Weapon/WULA_RW_DM_AR.sai2 | Bin .../Wula/Weapon/WULA_RW_DM_Cannon.sai2 | Bin .../Wula/Weapon/WULA_RW_Fractal_RF.sai2 | Bin .../Wula/Weapon/WULA_RW_Handle_Cannon.png | Bin .../Wula/Weapon/WULA_RW_Handle_Cannon.sai2 | Bin .../Wula/Weapon/WULA_RW_Sphene_MG.png | Bin .../Wula/Weapon/WULA_RW_Sphene_MG.sai2 | Bin .../Wula/Weapon/WULA_RW_StarDrift_SG.png | Bin .../Wula/Weapon/WULA_RW_StarDrift_Shotgun.sai2 | Bin .../Wula/Weapon/WULA_SP_Spell_Medium.sai2 | Bin .../Wula/Weapon/WULA_WM_Panzer_Autocannon.png | Bin .../Wula/Weapon/WULA_WM_Panzer_Autocannon.sai2 | Bin .../Wula/Weapon/WULA_WM_Panzer_Turret.png | Bin .../Wula/Weapon/WULA_WM_Panzer_Turret.sai2 | Bin .../Expanding/Wula_Broken_Personality_Faction.png | Bin .../Expanding/Wula_Broken_Personality_Faction.sai2 | Bin .../Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png | Bin .../Wula/World/WorldObjects/Expanding/Wula_FE_Faction.sai2 | Bin .../WorldObjects/Expanding/Wula_FE_Spiritualist_Faction.sai2 | Bin .../美术与文本源文件}/thumbnail.png | Bin .../美术与文本源文件}/thumbnail.sai2 | Bin .../美术与文本源文件}/《堕落乌拉帝国》.txt | 0 .../美术与文本源文件}/修女乌拉.sai2 | Bin .../美术与文本源文件}/宣传图2.png | Bin .../美术与文本源文件}/宣传图2.sai2 | Bin .../美术与文本源文件}/宣传图3.png | Bin .../美术与文本源文件}/宣传图3.sai2 | Bin .../美术与文本源文件}/宣传图4.sai2 | Bin .../美术与文本源文件}/宣传图5.png | Bin .../美术与文本源文件}/故障的arc代码之扇形攻击.txt | 0 .../美术与文本源文件}/新建文本文档.txt | 0 .../美术与文本源文件}/眉栏.sai2 | Bin .../群星文本/dip_messages_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_awake_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_buildings_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_dip_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_events_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_jobs_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_main_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_planet_l_simp_chinese.yml | 0 .../群星文本/fallen_empire_test_l_simp_chinese.yml | 0 .../群星文本/name_lists/name_list_WULA_l_simp_chinese.yml | 0 .../群星文本/wula_ascension_perks_l_simp_chinese.yml | 0 .../群星文本/wula_civics_l_simp_chinese.yml | 0 .../群星文本/wula_concept_l_simp_chinese.yml | 0 .../群星文本/wula_courier_events_l_simp_chinese.yml | 0 .../群星文本/wula_fallen_empire_machine_l_simp_chinese.yml | 0 .../wula_fallen_empire_materialist_l_simp_chinese.yml | 0 .../群星文本/wula_fallen_empire_preftl_l_simp_chinese.yml | 0 .../wula_fallen_empire_rogue_trader_l_simp_chinese.yml | 0 .../wula_fallen_empire_spiritualist_l_simp_chinese.yml | 0 .../群星文本/wula_fallen_empire_xenophile_l_simp_chinese.yml | 0 .../群星文本/wula_fallen_empire_xenophobe_l_simp_chinese.yml | 0 .../wula_fallen_empires_mid_events_l_simp_chinese.yml | 0 .../群星文本/wula_fleet_l_simp_chinese.yml | 0 .../群星文本/wula_megastructure_l_simp_chinese.yml | 0 .../群星文本/wula_modifiers_l_simp_chinese.yml | 0 .../群星文本/wula_narrative_events_l_simp_chinese.yml | 0 .../群星文本/wula_observation_l_simp_chinese.yml | 0 .../群星文本/wula_operation_event_l_simp_chinese.yml | 0 .../群星文本/wula_policy_l_simp_chinese.yml | 0 .../群星文本/wula_species_rights_l_simp_chinese.yml | 0 .../群星文本/wula_tech_componment_l_simp_chinese.yml | 0 .../群星文本/wula_traits_l_simp_chinese.yml | 0 WulaFallenEmpireTest.rar | Bin 1369803 -> 0 bytes 901 files changed, 22639 insertions(+), 4 deletions(-) rename 1.6/{ => 1.6}/Assemblies/WulaFallenEmpire.dll (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/Constant/Constant.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/Constant/Thoughts.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackMelee.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackStatic.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/DoBill.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Goto.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Ingest.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/LayDown.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Lovin.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Mine.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/RemoveApparel.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Research.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/SocialRelax.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/StandAndBeSociallyActive.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Strip.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/WaitCombat.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Wait_Downed.xml (100%) rename 1.6/{ => 1.6}/Defs/AnimationDefs/WulaSpecies/ForJobs/Wear.xml (100%) rename 1.6/{ => 1.6}/Defs/BackstoryDefs/Solid/Solid_Adult_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/BodyAndPartDefs/Bodyparts_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/DamageDefs/Damages_Wula.xml (100%) rename 1.6/{ => 1.6}/Defs/DesignationCategoryDefs/WULA_DesignationCategoryDefs.xml (100%) rename 1.6/{ => 1.6}/Defs/Effects/Mote_Wula.xml (100%) rename 1.6/{ => 1.6}/Defs/EventDefs/EventDef_Examples.xml (100%) rename 1.6/{ => 1.6}/Defs/EventDefs/EventDef_VariableTest.xml (100%) rename 1.6/{ => 1.6}/Defs/EventDefs/EventDef_WULA_FE_Spiritualist.xml (100%) rename 1.6/{ => 1.6}/Defs/EventDefs/EventDef_Wula.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/BrowShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/EmotionShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/EyeShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/HeadShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/LidOptionShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/LidShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/MouthShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceShapeDefs/SkinShape.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/BrowType.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/EmotionType.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/EyeType.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/HeadType.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/LidType.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/MouthType.xml (100%) rename 1.6/{ => 1.6}/Defs/FaceTypeDefs/WulaSpecies/SkinType.xml (100%) rename 1.6/{ => 1.6}/Defs/FactionDefs/Factions_Player_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/FleshTypeDefs/FleshType_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/HairDefs/WULA_Hairs.xml (100%) rename 1.6/{ => 1.6}/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/HediffDefs/Hediffs_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/HediffDefs/Hediffs_WULA_Damage_Effect.xml (100%) rename 1.6/{ => 1.6}/Defs/HediffDefs/Hediffs_WULA_Maintenance.xml (100%) rename 1.6/{ => 1.6}/Defs/IncidentDefs/Wula_ScheduledIncidents.xml (100%) rename 1.6/{ => 1.6}/Defs/JobDefs/WULA_JobDefs.xml (100%) rename 1.6/{ => 1.6}/Defs/MentalBreakDefs/MentalBreaks_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/MentalStateDefs/MentalStates_WULA_Broken.xml (100%) rename 1.6/{ => 1.6}/Defs/NeedDefs/WULA_Needs.xml (100%) rename 1.6/{ => 1.6}/Defs/PawnKinds/PawnKinds_Wula.xml (100%) rename 1.6/{ => 1.6}/Defs/QuestScriptDefs/Wula_ScheduledEvents.xml (100%) rename 1.6/{ => 1.6}/Defs/RecipeDefs/Recipes_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/ResearchProjectDefs/ResearchProjects_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/ResearchTabDef/ResearchTabs_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/RulePackDefs/RulePacks_Namers_Factions_Wula.xml (100%) rename 1.6/{ => 1.6}/Defs/Scenarios/Scenarios_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/StatDefs/WULA_Stats.xml (100%) rename 1.6/{ => 1.6}/Defs/StoryTellers/WULA_Storytellers.xml (100%) rename 1.6/{ => 1.6}/Defs/StyleItemCategoryDefs/WULA_StyleItemCategoryDefs.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs/WULA_Item.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs_Buildings/Buildings_Structure.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs_Buildings/Buildings_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs_Buildings/WULA_FallenEmpire_Buildings_Ritual.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs_Misc/Apperals/WULA_Apparel.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml (100%) rename 1.6/{ => 1.6}/Defs/ThingDefs_Races/Races_Wulaspecies.xml (100%) rename 1.6/{ => 1.6}/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml (100%) rename 1.6/{ => 1.6}/Defs/ThoughtDefs/Thoughts_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/TraitDefs/Traits_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml (100%) rename 1.6/{ => 1.6}/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml (100%) rename 1.6/{ => 1.6}/Defs/WorkGivers/Wula_WorkGivers.xml (100%) rename 1.6/{ => 1.6}/Defs/WulaMiscSettingDefs/EventUIConfig.xml (100%) rename 1.6/{ => 1.6}/Defs/WulaMiscSettingDefs/LetterDefs/EventLetter.xml (100%) rename 1.6/{ => 1.6}/Defs/WulaMiscSettingDefs/LifeStageDefs/LifeStages_WULA.xml (100%) rename 1.6/{ => 1.6}/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml (100%) rename 1.6/{ => 1.6}/Defs/WulaMiscSettingDefs/WulaHullDef.xml (100%) rename {Languages => 1.6/1.6/Languages}/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml (100%) rename {Languages => 1.6/1.6/Languages}/ChineseSimplified (简体中文)/Keyed/WULA_Ritual_Keys.xml (100%) rename {Languages => 1.6/1.6/Languages}/ChineseSimplified (简体中文)/Keyed/WULA_SkillTrainer.xml (100%) rename {Patches => 1.6/1.6/Patches}/Patch.xml (100%) rename 1.6/{Mods => }/Anomaly/BodyAndPartDefs/Bodyparts_WULA_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/FactionDefs/Factions_WULA_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/HediffDefs/Hediffs_WULA_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/PawnKinds/PawnKinds_Wula_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/PsychicRitualDefs/WULA_FE_Spiritualist_Rituals.xml (100%) rename 1.6/{Mods => }/Anomaly/ResearchProjectDefs/ResearchProjects_WULA_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/ResearchTabDef/ResearchTabs_WULA_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/ThingDefs/WULA_FE_Spiritualist_Item.xml (100%) rename 1.6/{Mods => }/Anomaly/ThingDefs_Misc/Apperals/WULA_FE_Spiritualist_Apparel.xml (100%) rename 1.6/{Mods => }/Anomaly/ThingDefs_Misc/Weapons/WULA_FE_Spiritualist_Weapon.xml (100%) rename 1.6/{Mods => }/Anomaly/ThingDefs_Races/Races_Wulaspecies_FE_Spiritualist.xml (100%) rename 1.6/{Mods => }/Anomaly/TraderKindDefs/TraderKinds_WULA_FE_Spiritualist.xml (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Apperal_Empty.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_Helmet.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_Helmet_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_Helmet_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_Helmet_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_PowerArmor.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Body_Suit.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Body_Suit_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Body_Suit_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Body_Suit_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_White.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_White_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_White_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Bodystocking_White_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_Helmet.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_Helmet_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_Helmet_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_Helmet.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_Helmet_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_Helmet_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_Helmet_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_PowerArmor.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_PowerArmor_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_PowerArmor_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Knight_PowerArmor_Thin_west.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform_Headband.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform_Headband_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform_Headband_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Maid_Uniform_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_Uniform.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_Uniform_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_Uniform_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_Uniform_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_Uniform_Thin_west.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_veil.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_veil_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_veil_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nun_veil_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Headband.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Headband_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Headband_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Nurse_Uniform_Thin_west.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Hat.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Hat_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Hat_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Hat_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Uniform.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Uniform_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Uniform_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Priest_Uniform_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Qipao.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Qipao_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Qipao_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Qipao_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Sailor_Dress.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Sailor_Dress_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Sailor_Dress_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Sailor_Dress_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Base.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Base_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Base_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Base_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Prismatic.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Prismatic_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Shield_Prismatic_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_Uniform.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_Uniform_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_Uniform_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_veil.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_veil_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_veil_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_Skitarii_veil_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_official_uniform.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_official_uniform_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_official_uniform_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_official_uniform_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Apparel/WULA_official_uniform_Thin_west.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor_BluePrint.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor_Mover.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor_Mover_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor_Mover_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/Door/WulaAutodoor_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd (100%) rename {Textures => Content/Textures}/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Charging_Station_Synth_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Charging_Station_Synth_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Charging_Station_Synth_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Communicator_Station.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_BIO_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_BIO_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_BIO_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_Component_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_Component_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_Component_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_Energy_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_Energy_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Cube_Productor_Energy_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Floor.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Floor_Icon.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Heavy_War_Machine_Productor_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Heavy_War_Machine_Productor_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Heavy_War_Machine_Productor_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Nourishment_Center_Unit.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Synth_Maintainer_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Synth_Server_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Synth_Server_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Synth_Server_south.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_Turret_Component.png (100%) rename {Textures => Content/Textures}/Wula/Building/WULA_WM_Panzer_Autocannon.png (100%) rename {Textures => Content/Textures}/Wula/Building/Wula_AI_Heavy_Panzer_Gunnery_Turret.png (100%) rename {Textures => Content/Textures}/Wula/Building/Wula_DarkEnergy_FuelTank.png (100%) rename {Textures => Content/Textures}/Wula/Building/Wula_DarkEnergy_FuelTank_east.png (100%) rename {Textures => Content/Textures}/Wula/Building/Wula_DarkEnergy_FuelTank_north.png (100%) rename {Textures => Content/Textures}/Wula/Building/Wula_DarkEnergy_FuelTank_south.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_Anisia_1.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_Anisia_2.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_Anisia_3.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_Anisia_4.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_Anisia_5.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_Anisia_6.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_FE_Spiritualist_1.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_FE_Spiritualist_2.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_FE_Spiritualist_3.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/WULA_FE_Spiritualist_4.png (100%) rename {Textures => Content/Textures}/Wula/Events/Portraits/Wula_insignal.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Double_Ponytail_Long_east.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Double_Ponytail_Long_north.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Double_Ponytail_Long_south.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_High_Ponytail_east.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_High_Ponytail_north.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_High_Ponytail_south.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_One_Side_Ponytail_east.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_One_Side_Ponytail_north.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_One_Side_Ponytail_south.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_One_Side_Ponytail_west.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Rotational_Ponytail_east.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Rotational_Ponytail_north.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Rotational_Ponytail_south.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Scattered_Hair_Long_east.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Scattered_Hair_Long_north.png (100%) rename {Textures => Content/Textures}/Wula/Hair/WULA_Scattered_Hair_Long_south.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Charge_Cube.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Dark_Matter_Item.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Default_Item.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_MechRepairKit.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Neutronium.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Soul_Wedge.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Syhth_Passion_Trainer.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_Syhth_Trainer.png (100%) rename {Textures => Content/Textures}/Wula/Item/WULA_charge_cube_No_Power.png (100%) rename {Textures => Content/Textures}/Wula/Item/Wula_Zro.png (100%) rename {Textures => Content/Textures}/Wula/Mote/WULA_Bullet_Dark_Matter_Beam.png (100%) rename {Textures => Content/Textures}/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png (100%) rename {Textures => Content/Textures}/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png (100%) rename {Textures => Content/Textures}/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png (100%) rename {Textures => Content/Textures}/Wula/Projectile/WULA_Mortar_Shell.png (100%) rename {Textures => Content/Textures}/Wula/Projectile/WULA_Photon_Missile.png (100%) rename {Textures => Content/Textures}/Wula/Projectile/WULA_Shrapnel.png (100%) rename {Textures => Content/Textures}/Wula/Storyteller/WULA_Anisia.png (100%) rename {Textures => Content/Textures}/Wula/Storyteller/WULA_Anisia_TINY.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/WULA_Species_Icon.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_west.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/WulaSpeciesReal/WULA_Species_Icon.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/Wula_Armour_Icon.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png (100%) rename {Textures => Content/Textures}/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png (100%) rename {Textures => Content/Textures}/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Armour_Lance.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Breaker_Bar.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_ChainSword.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Charge_Mace.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Constructor_Hammer.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Glaive.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Lance.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Mace.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_AutoCannon.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Auto_GL.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Base_AR.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Base_AR_Cat.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_DM_AR.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_DM_Cannon.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Fractal_RF.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Handle_Cannon.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Photon_Missile.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_Sphene_MG.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_RW_StarDrift_SG.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_SP_Cotton_Counter.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_SP_Live_Shelter.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_SP_Mist_Incinerator.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_SP_Spear_Impale.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_SP_Spell_Medium.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_WM_Panzer_Autocannon.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_WM_Panzer_Turret.png (100%) rename {Textures => Content/Textures}/Wula/Weapon/WULA_Weapon_Empty.png (100%) rename {Textures => Content/Textures}/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png (100%) rename {Textures => Content/Textures}/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png (100%) create mode 100644 MCP/mcpserver.log rename {Source/MCP => MCP}/mcpserver_stdio.py (100%) create mode 100644 MCP/pid.txt create mode 100644 MCP/vector_cache/AbilityDef.txt create mode 100644 MCP/vector_cache/AddHumanlikeOrders-FloatMenuMakerMap.txt create mode 100644 MCP/vector_cache/BiosculpterPod-ThingDef.txt create mode 100644 MCP/vector_cache/BiosculpterPod.txt create mode 100644 MCP/vector_cache/Building_Bed.txt create mode 100644 MCP/vector_cache/CarryToBiosculpterPod-JobDefOf-JobDriver_CarryToBiosculpterPod.txt create mode 100644 MCP/vector_cache/ColonistBarColonistDrawer-DrawIcons.txt create mode 100644 MCP/vector_cache/CompBiosculpterPod-CompProperties_BiosculpterPod.txt create mode 100644 MCP/vector_cache/CompBiosculpterPod-WorkGiver_HaulToBiosculpterPod.txt create mode 100644 MCP/vector_cache/CompProperties_Refuelable.txt create mode 100644 MCP/vector_cache/CryptosleepCasket.txt create mode 100644 MCP/vector_cache/HediffDef-Luciferium.txt create mode 100644 MCP/vector_cache/HediffDef-Malnutrition.txt create mode 100644 MCP/vector_cache/Human-ThingDef.txt create mode 100644 MCP/vector_cache/HumanlikeAdult-LifeStageDef.txt create mode 100644 MCP/vector_cache/JobDef.txt create mode 100644 MCP/vector_cache/JobDefOf-JobDriver_TakeToBed-Rescue.txt create mode 100644 MCP/vector_cache/JobDriver_EnterCryptosleepCasket.txt create mode 100644 MCP/vector_cache/PawnKindDef-lifeStages.txt create mode 100644 MCP/vector_cache/Pawn_InventoryTracker-get_FirstUnloadableThing.txt create mode 100644 MCP/vector_cache/Projectile-TickInterval-Verse.txt create mode 100644 MCP/vector_cache/PsychicRitualDef.txt create mode 100644 MCP/vector_cache/PsychicRitualDef_InvocationCircle.txt create mode 100644 MCP/vector_cache/PsychicRitualToil_GatherForInvocation.txt create mode 100644 MCP/vector_cache/PsychicRitualToil_GatherOfferings.txt create mode 100644 MCP/vector_cache/Source-StartCarryThing-Toil-Toils_Haul.txt create mode 100644 MCP/vector_cache/StatDef.txt create mode 100644 MCP/vector_cache/WorkGiver_Scanner.txt rename {Documentation => Source/Documentation}/EventSystem_Documentation.md (100%) rename {Documentation => Source/Documentation}/layout_preview.html (100%) delete mode 160000 Source/MCP/python-sdk rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Assault_Troop_Helmet_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Body_Suit_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Bodystocking_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Bodystocking_White_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Knight_Helmet_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Maid_Uniform_Headband.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Maid_Uniform_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Nun_Uniform_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Nun_veil_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Priest_Hat_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Priest_Uniform_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Qipao_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Sailor_Dress_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Sailor_Dress_Thin_north.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Sailor_Dress_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Shield_Base_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_Skitarii_veil_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Apparel/WULA_official_uniform_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_BluePrint.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_Mover.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_Mover.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_Mover_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_Mover_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Door/WulaAutodoor_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/WULA_Fortress_Wall_Smooth.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Chair.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Charging_Station_Synth_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Communicator_Station.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Cube_Productor_BIO.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Cube_Productor_Component.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Heavy_War_Machine_Productor_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Nourishment_Center_Unit.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Synth_Maintainer_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Synth_Server_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/WULA_Turret_Component.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Double_Ponytail_Long_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Double_Ponytail_Long_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Double_Ponytail_Long_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_High_Ponytail_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_High_Ponytail_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_High_Ponytail_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_High_Ponytail_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_One_Side_Ponytail_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_One_Side_Ponytail_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_One_Side_Ponytail_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_One_Side_Ponytail_west.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Rotational_Ponytail_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Rotational_Ponytail_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Rotational_Ponytail_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Scattered_Hair_Long_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Scattered_Hair_Long_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Scattered_Hair_Long_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Scattered_Hair_Long_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Hair/WULA_Sidelocks_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Charge_Cube_No_Power.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Dark_Matter_Item.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Default_Item.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_MechRepairKit.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Neutronium.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Soul_Wedge.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Syhth_Passion_Trainer.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_Syhth_Trainer.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/WULA_charge_cube.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Item/Wula_Zro.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Mote/BeamSecondaryNoise_A.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Mote/BeamSecondaryNoise_B.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Mote/GraserBeam.psd (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Bullet_Dark_Matter_Beam.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Mortar_Shell.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Photon_Missile.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Projectile/WULA_Shrapnel.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/WULA_Anisia.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/WULA_Anisia_TINY.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/艾妮西娅/艾妮西娅-修女.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/艾妮西娅/艾妮西娅-修女特殊.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/艾妮西娅/艾妮西娅-女仆.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Storyteller/艾妮西娅/艾妮西娅-默认.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/WULA_Species_Icon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/Wula_Armour_Icon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/UI/EventUI/新建画布1.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Armour_Lance.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Armour_Lance.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Breaker_Bar.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Breaker_Bar.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_ChainSword.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_ChainSword.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Charge_Mace.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Charge_Mace.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Constructor_Hammer.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Constructor_Hammer.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Glaive.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Lance.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Lance.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Mace.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Feather.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Flash.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Lost.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_MW_Scepter_Of_Perception.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_AutoCannon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_AutoCannon.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Auto_GL.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Auto_GL.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Base_AR.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Base_AR_Cat.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_DM_AR.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_DM_Cannon.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Fractal_RF.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Handle_Cannon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Handle_Cannon.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Sphene_MG.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_Sphene_MG.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_StarDrift_SG.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_RW_StarDrift_Shotgun.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_SP_Spell_Medium.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_WM_Panzer_Autocannon.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_WM_Panzer_Autocannon.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_WM_Panzer_Turret.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/Weapon/WULA_WM_Panzer_Turret.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/Wula/World/WorldObjects/Expanding/Wula_FE_Spiritualist_Faction.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/thumbnail.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/thumbnail.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/《堕落乌拉帝国》.txt (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/修女乌拉.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/宣传图2.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/宣传图2.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/宣传图3.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/宣传图3.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/宣传图4.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/宣传图5.png (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/故障的arc代码之扇形攻击.txt (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/新建文本文档.txt (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/眉栏.sai2 (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/dip_messages_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_awake_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_buildings_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_dip_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_events_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_jobs_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_main_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_planet_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/fallen_empire_test_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/name_lists/name_list_WULA_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_ascension_perks_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_civics_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_concept_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_courier_events_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_machine_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_materialist_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_preftl_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_rogue_trader_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_spiritualist_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_xenophile_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empire_xenophobe_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fallen_empires_mid_events_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_fleet_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_megastructure_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_modifiers_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_narrative_events_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_observation_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_operation_event_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_policy_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_species_rights_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_tech_componment_l_simp_chinese.yml (100%) rename {美术与文本源文件 => Source/美术与文本源文件}/群星文本/wula_traits_l_simp_chinese.yml (100%) delete mode 100644 WulaFallenEmpireTest.rar diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll similarity index 100% rename from 1.6/Assemblies/WulaFallenEmpire.dll rename to 1.6/1.6/Assemblies/WulaFallenEmpire.dll diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/Constant/Constant.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/Constant/Constant.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/Constant/Constant.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/Constant/Constant.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/Constant/Thoughts.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/Constant/Thoughts.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/Constant/Thoughts.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/Constant/Thoughts.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackMelee.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackMelee.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackMelee.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackMelee.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackStatic.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackStatic.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackStatic.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/AttackStatic.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/DoBill.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/DoBill.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/DoBill.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/DoBill.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Goto.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Goto.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Goto.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Goto.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Ingest.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Ingest.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Ingest.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Ingest.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/LayDown.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/LayDown.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/LayDown.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/LayDown.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Lovin.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Lovin.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Lovin.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Lovin.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Mine.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Mine.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Mine.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Mine.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/RemoveApparel.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/RemoveApparel.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/RemoveApparel.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/RemoveApparel.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Research.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Research.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Research.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Research.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/SocialRelax.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/SocialRelax.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/SocialRelax.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/SocialRelax.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/StandAndBeSociallyActive.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/StandAndBeSociallyActive.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/StandAndBeSociallyActive.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/StandAndBeSociallyActive.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Strip.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Strip.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Strip.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Strip.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/WaitCombat.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/WaitCombat.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/WaitCombat.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/WaitCombat.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wait_Downed.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wait_Downed.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wait_Downed.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wait_Downed.xml diff --git a/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wear.xml b/1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wear.xml similarity index 100% rename from 1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wear.xml rename to 1.6/1.6/Defs/AnimationDefs/WulaSpecies/ForJobs/Wear.xml diff --git a/1.6/Defs/BackstoryDefs/Solid/Solid_Adult_WULA.xml b/1.6/1.6/Defs/BackstoryDefs/Solid/Solid_Adult_WULA.xml similarity index 100% rename from 1.6/Defs/BackstoryDefs/Solid/Solid_Adult_WULA.xml rename to 1.6/1.6/Defs/BackstoryDefs/Solid/Solid_Adult_WULA.xml diff --git a/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml b/1.6/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml similarity index 100% rename from 1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml rename to 1.6/1.6/Defs/BackstoryDefs/Solid/Solid_Child_WULA.xml diff --git a/1.6/Defs/BodyAndPartDefs/Bodyparts_WULA.xml b/1.6/1.6/Defs/BodyAndPartDefs/Bodyparts_WULA.xml similarity index 100% rename from 1.6/Defs/BodyAndPartDefs/Bodyparts_WULA.xml rename to 1.6/1.6/Defs/BodyAndPartDefs/Bodyparts_WULA.xml diff --git a/1.6/Defs/DamageDefs/Damages_Wula.xml b/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml similarity index 100% rename from 1.6/Defs/DamageDefs/Damages_Wula.xml rename to 1.6/1.6/Defs/DamageDefs/Damages_Wula.xml diff --git a/1.6/Defs/DesignationCategoryDefs/WULA_DesignationCategoryDefs.xml b/1.6/1.6/Defs/DesignationCategoryDefs/WULA_DesignationCategoryDefs.xml similarity index 100% rename from 1.6/Defs/DesignationCategoryDefs/WULA_DesignationCategoryDefs.xml rename to 1.6/1.6/Defs/DesignationCategoryDefs/WULA_DesignationCategoryDefs.xml diff --git a/1.6/Defs/Effects/Mote_Wula.xml b/1.6/1.6/Defs/Effects/Mote_Wula.xml similarity index 100% rename from 1.6/Defs/Effects/Mote_Wula.xml rename to 1.6/1.6/Defs/Effects/Mote_Wula.xml diff --git a/1.6/Defs/EventDefs/EventDef_Examples.xml b/1.6/1.6/Defs/EventDefs/EventDef_Examples.xml similarity index 100% rename from 1.6/Defs/EventDefs/EventDef_Examples.xml rename to 1.6/1.6/Defs/EventDefs/EventDef_Examples.xml diff --git a/1.6/Defs/EventDefs/EventDef_VariableTest.xml b/1.6/1.6/Defs/EventDefs/EventDef_VariableTest.xml similarity index 100% rename from 1.6/Defs/EventDefs/EventDef_VariableTest.xml rename to 1.6/1.6/Defs/EventDefs/EventDef_VariableTest.xml diff --git a/1.6/Defs/EventDefs/EventDef_WULA_FE_Spiritualist.xml b/1.6/1.6/Defs/EventDefs/EventDef_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Defs/EventDefs/EventDef_WULA_FE_Spiritualist.xml rename to 1.6/1.6/Defs/EventDefs/EventDef_WULA_FE_Spiritualist.xml diff --git a/1.6/Defs/EventDefs/EventDef_Wula.xml b/1.6/1.6/Defs/EventDefs/EventDef_Wula.xml similarity index 100% rename from 1.6/Defs/EventDefs/EventDef_Wula.xml rename to 1.6/1.6/Defs/EventDefs/EventDef_Wula.xml diff --git a/1.6/Defs/FaceShapeDefs/BrowShape.xml b/1.6/1.6/Defs/FaceShapeDefs/BrowShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/BrowShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/BrowShape.xml diff --git a/1.6/Defs/FaceShapeDefs/EmotionShape.xml b/1.6/1.6/Defs/FaceShapeDefs/EmotionShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/EmotionShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/EmotionShape.xml diff --git a/1.6/Defs/FaceShapeDefs/EyeShape.xml b/1.6/1.6/Defs/FaceShapeDefs/EyeShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/EyeShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/EyeShape.xml diff --git a/1.6/Defs/FaceShapeDefs/HeadShape.xml b/1.6/1.6/Defs/FaceShapeDefs/HeadShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/HeadShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/HeadShape.xml diff --git a/1.6/Defs/FaceShapeDefs/LidOptionShape.xml b/1.6/1.6/Defs/FaceShapeDefs/LidOptionShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/LidOptionShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/LidOptionShape.xml diff --git a/1.6/Defs/FaceShapeDefs/LidShape.xml b/1.6/1.6/Defs/FaceShapeDefs/LidShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/LidShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/LidShape.xml diff --git a/1.6/Defs/FaceShapeDefs/MouthShape.xml b/1.6/1.6/Defs/FaceShapeDefs/MouthShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/MouthShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/MouthShape.xml diff --git a/1.6/Defs/FaceShapeDefs/SkinShape.xml b/1.6/1.6/Defs/FaceShapeDefs/SkinShape.xml similarity index 100% rename from 1.6/Defs/FaceShapeDefs/SkinShape.xml rename to 1.6/1.6/Defs/FaceShapeDefs/SkinShape.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/BrowType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/BrowType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/BrowType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/BrowType.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/EmotionType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/EmotionType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/EmotionType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/EmotionType.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/EyeType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/EyeType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/EyeType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/EyeType.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/HeadType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/HeadType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/HeadType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/HeadType.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/LidType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/LidType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/LidType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/LidType.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/MouthType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/MouthType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/MouthType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/MouthType.xml diff --git a/1.6/Defs/FaceTypeDefs/WulaSpecies/SkinType.xml b/1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/SkinType.xml similarity index 100% rename from 1.6/Defs/FaceTypeDefs/WulaSpecies/SkinType.xml rename to 1.6/1.6/Defs/FaceTypeDefs/WulaSpecies/SkinType.xml diff --git a/1.6/Defs/FactionDefs/Factions_Player_WULA.xml b/1.6/1.6/Defs/FactionDefs/Factions_Player_WULA.xml similarity index 100% rename from 1.6/Defs/FactionDefs/Factions_Player_WULA.xml rename to 1.6/1.6/Defs/FactionDefs/Factions_Player_WULA.xml diff --git a/1.6/Defs/FleshTypeDefs/FleshType_WULA.xml b/1.6/1.6/Defs/FleshTypeDefs/FleshType_WULA.xml similarity index 100% rename from 1.6/Defs/FleshTypeDefs/FleshType_WULA.xml rename to 1.6/1.6/Defs/FleshTypeDefs/FleshType_WULA.xml diff --git a/1.6/Defs/HairDefs/WULA_Hairs.xml b/1.6/1.6/Defs/HairDefs/WULA_Hairs.xml similarity index 100% rename from 1.6/Defs/HairDefs/WULA_Hairs.xml rename to 1.6/1.6/Defs/HairDefs/WULA_Hairs.xml diff --git a/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml b/1.6/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml similarity index 100% rename from 1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml rename to 1.6/1.6/Defs/HediffDefs/Hediffs_BodyParts_WULA.xml diff --git a/1.6/Defs/HediffDefs/Hediffs_WULA.xml b/1.6/1.6/Defs/HediffDefs/Hediffs_WULA.xml similarity index 100% rename from 1.6/Defs/HediffDefs/Hediffs_WULA.xml rename to 1.6/1.6/Defs/HediffDefs/Hediffs_WULA.xml diff --git a/1.6/Defs/HediffDefs/Hediffs_WULA_Damage_Effect.xml b/1.6/1.6/Defs/HediffDefs/Hediffs_WULA_Damage_Effect.xml similarity index 100% rename from 1.6/Defs/HediffDefs/Hediffs_WULA_Damage_Effect.xml rename to 1.6/1.6/Defs/HediffDefs/Hediffs_WULA_Damage_Effect.xml diff --git a/1.6/Defs/HediffDefs/Hediffs_WULA_Maintenance.xml b/1.6/1.6/Defs/HediffDefs/Hediffs_WULA_Maintenance.xml similarity index 100% rename from 1.6/Defs/HediffDefs/Hediffs_WULA_Maintenance.xml rename to 1.6/1.6/Defs/HediffDefs/Hediffs_WULA_Maintenance.xml diff --git a/1.6/Defs/IncidentDefs/Wula_ScheduledIncidents.xml b/1.6/1.6/Defs/IncidentDefs/Wula_ScheduledIncidents.xml similarity index 100% rename from 1.6/Defs/IncidentDefs/Wula_ScheduledIncidents.xml rename to 1.6/1.6/Defs/IncidentDefs/Wula_ScheduledIncidents.xml diff --git a/1.6/Defs/JobDefs/WULA_JobDefs.xml b/1.6/1.6/Defs/JobDefs/WULA_JobDefs.xml similarity index 100% rename from 1.6/Defs/JobDefs/WULA_JobDefs.xml rename to 1.6/1.6/Defs/JobDefs/WULA_JobDefs.xml diff --git a/1.6/Defs/MentalBreakDefs/MentalBreaks_WULA.xml b/1.6/1.6/Defs/MentalBreakDefs/MentalBreaks_WULA.xml similarity index 100% rename from 1.6/Defs/MentalBreakDefs/MentalBreaks_WULA.xml rename to 1.6/1.6/Defs/MentalBreakDefs/MentalBreaks_WULA.xml diff --git a/1.6/Defs/MentalStateDefs/MentalStates_WULA_Broken.xml b/1.6/1.6/Defs/MentalStateDefs/MentalStates_WULA_Broken.xml similarity index 100% rename from 1.6/Defs/MentalStateDefs/MentalStates_WULA_Broken.xml rename to 1.6/1.6/Defs/MentalStateDefs/MentalStates_WULA_Broken.xml diff --git a/1.6/Defs/NeedDefs/WULA_Needs.xml b/1.6/1.6/Defs/NeedDefs/WULA_Needs.xml similarity index 100% rename from 1.6/Defs/NeedDefs/WULA_Needs.xml rename to 1.6/1.6/Defs/NeedDefs/WULA_Needs.xml diff --git a/1.6/Defs/PawnKinds/PawnKinds_Wula.xml b/1.6/1.6/Defs/PawnKinds/PawnKinds_Wula.xml similarity index 100% rename from 1.6/Defs/PawnKinds/PawnKinds_Wula.xml rename to 1.6/1.6/Defs/PawnKinds/PawnKinds_Wula.xml diff --git a/1.6/Defs/QuestScriptDefs/Wula_ScheduledEvents.xml b/1.6/1.6/Defs/QuestScriptDefs/Wula_ScheduledEvents.xml similarity index 100% rename from 1.6/Defs/QuestScriptDefs/Wula_ScheduledEvents.xml rename to 1.6/1.6/Defs/QuestScriptDefs/Wula_ScheduledEvents.xml diff --git a/1.6/Defs/RecipeDefs/Recipes_WULA.xml b/1.6/1.6/Defs/RecipeDefs/Recipes_WULA.xml similarity index 100% rename from 1.6/Defs/RecipeDefs/Recipes_WULA.xml rename to 1.6/1.6/Defs/RecipeDefs/Recipes_WULA.xml diff --git a/1.6/Defs/ResearchProjectDefs/ResearchProjects_WULA.xml b/1.6/1.6/Defs/ResearchProjectDefs/ResearchProjects_WULA.xml similarity index 100% rename from 1.6/Defs/ResearchProjectDefs/ResearchProjects_WULA.xml rename to 1.6/1.6/Defs/ResearchProjectDefs/ResearchProjects_WULA.xml diff --git a/1.6/Defs/ResearchTabDef/ResearchTabs_WULA.xml b/1.6/1.6/Defs/ResearchTabDef/ResearchTabs_WULA.xml similarity index 100% rename from 1.6/Defs/ResearchTabDef/ResearchTabs_WULA.xml rename to 1.6/1.6/Defs/ResearchTabDef/ResearchTabs_WULA.xml diff --git a/1.6/Defs/RulePackDefs/RulePacks_Namers_Factions_Wula.xml b/1.6/1.6/Defs/RulePackDefs/RulePacks_Namers_Factions_Wula.xml similarity index 100% rename from 1.6/Defs/RulePackDefs/RulePacks_Namers_Factions_Wula.xml rename to 1.6/1.6/Defs/RulePackDefs/RulePacks_Namers_Factions_Wula.xml diff --git a/1.6/Defs/Scenarios/Scenarios_WULA.xml b/1.6/1.6/Defs/Scenarios/Scenarios_WULA.xml similarity index 100% rename from 1.6/Defs/Scenarios/Scenarios_WULA.xml rename to 1.6/1.6/Defs/Scenarios/Scenarios_WULA.xml diff --git a/1.6/Defs/StatDefs/WULA_Stats.xml b/1.6/1.6/Defs/StatDefs/WULA_Stats.xml similarity index 100% rename from 1.6/Defs/StatDefs/WULA_Stats.xml rename to 1.6/1.6/Defs/StatDefs/WULA_Stats.xml diff --git a/1.6/Defs/StoryTellers/WULA_Storytellers.xml b/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml similarity index 100% rename from 1.6/Defs/StoryTellers/WULA_Storytellers.xml rename to 1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml diff --git a/1.6/Defs/StyleItemCategoryDefs/WULA_StyleItemCategoryDefs.xml b/1.6/1.6/Defs/StyleItemCategoryDefs/WULA_StyleItemCategoryDefs.xml similarity index 100% rename from 1.6/Defs/StyleItemCategoryDefs/WULA_StyleItemCategoryDefs.xml rename to 1.6/1.6/Defs/StyleItemCategoryDefs/WULA_StyleItemCategoryDefs.xml diff --git a/1.6/Defs/ThingDefs/WULA_Item.xml b/1.6/1.6/Defs/ThingDefs/WULA_Item.xml similarity index 100% rename from 1.6/Defs/ThingDefs/WULA_Item.xml rename to 1.6/1.6/Defs/ThingDefs/WULA_Item.xml diff --git a/1.6/Defs/ThingDefs_Buildings/Buildings_Structure.xml b/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_Structure.xml similarity index 100% rename from 1.6/Defs/ThingDefs_Buildings/Buildings_Structure.xml rename to 1.6/1.6/Defs/ThingDefs_Buildings/Buildings_Structure.xml diff --git a/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml b/1.6/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml similarity index 100% rename from 1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml rename to 1.6/1.6/Defs/ThingDefs_Buildings/Buildings_WULA.xml diff --git a/1.6/Defs/ThingDefs_Buildings/WULA_FallenEmpire_Buildings_Ritual.xml b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_FallenEmpire_Buildings_Ritual.xml similarity index 100% rename from 1.6/Defs/ThingDefs_Buildings/WULA_FallenEmpire_Buildings_Ritual.xml rename to 1.6/1.6/Defs/ThingDefs_Buildings/WULA_FallenEmpire_Buildings_Ritual.xml diff --git a/1.6/Defs/ThingDefs_Misc/Apperals/WULA_Apparel.xml b/1.6/1.6/Defs/ThingDefs_Misc/Apperals/WULA_Apparel.xml similarity index 100% rename from 1.6/Defs/ThingDefs_Misc/Apperals/WULA_Apparel.xml rename to 1.6/1.6/Defs/ThingDefs_Misc/Apperals/WULA_Apparel.xml diff --git a/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml b/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml similarity index 100% rename from 1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml rename to 1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_Weapon.xml diff --git a/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml b/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml similarity index 100% rename from 1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml rename to 1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml diff --git a/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml b/1.6/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml similarity index 100% rename from 1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml rename to 1.6/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml diff --git a/1.6/Defs/ThoughtDefs/Thoughts_WULA.xml b/1.6/1.6/Defs/ThoughtDefs/Thoughts_WULA.xml similarity index 100% rename from 1.6/Defs/ThoughtDefs/Thoughts_WULA.xml rename to 1.6/1.6/Defs/ThoughtDefs/Thoughts_WULA.xml diff --git a/1.6/Defs/TraitDefs/Traits_WULA.xml b/1.6/1.6/Defs/TraitDefs/Traits_WULA.xml similarity index 100% rename from 1.6/Defs/TraitDefs/Traits_WULA.xml rename to 1.6/1.6/Defs/TraitDefs/Traits_WULA.xml diff --git a/1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml b/1.6/1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml similarity index 100% rename from 1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml rename to 1.6/1.6/Defs/WeaponTraitDefs/WULA_WeaponCategoryDefs.xml diff --git a/1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml b/1.6/1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml similarity index 100% rename from 1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml rename to 1.6/1.6/Defs/WeaponTraitDefs/WULA_WeaponTraitDefs.xml diff --git a/1.6/Defs/WorkGivers/Wula_WorkGivers.xml b/1.6/1.6/Defs/WorkGivers/Wula_WorkGivers.xml similarity index 100% rename from 1.6/Defs/WorkGivers/Wula_WorkGivers.xml rename to 1.6/1.6/Defs/WorkGivers/Wula_WorkGivers.xml diff --git a/1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml b/1.6/1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml similarity index 100% rename from 1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml rename to 1.6/1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml diff --git a/1.6/Defs/WulaMiscSettingDefs/LetterDefs/EventLetter.xml b/1.6/1.6/Defs/WulaMiscSettingDefs/LetterDefs/EventLetter.xml similarity index 100% rename from 1.6/Defs/WulaMiscSettingDefs/LetterDefs/EventLetter.xml rename to 1.6/1.6/Defs/WulaMiscSettingDefs/LetterDefs/EventLetter.xml diff --git a/1.6/Defs/WulaMiscSettingDefs/LifeStageDefs/LifeStages_WULA.xml b/1.6/1.6/Defs/WulaMiscSettingDefs/LifeStageDefs/LifeStages_WULA.xml similarity index 100% rename from 1.6/Defs/WulaMiscSettingDefs/LifeStageDefs/LifeStages_WULA.xml rename to 1.6/1.6/Defs/WulaMiscSettingDefs/LifeStageDefs/LifeStages_WULA.xml diff --git a/1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml b/1.6/1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml similarity index 100% rename from 1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml rename to 1.6/1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml diff --git a/1.6/Defs/WulaMiscSettingDefs/WulaHullDef.xml b/1.6/1.6/Defs/WulaMiscSettingDefs/WulaHullDef.xml similarity index 100% rename from 1.6/Defs/WulaMiscSettingDefs/WulaHullDef.xml rename to 1.6/1.6/Defs/WulaMiscSettingDefs/WulaHullDef.xml diff --git a/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml similarity index 100% rename from Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml rename to 1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml diff --git a/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Ritual_Keys.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Ritual_Keys.xml similarity index 100% rename from Languages/ChineseSimplified (简体中文)/Keyed/WULA_Ritual_Keys.xml rename to 1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Ritual_Keys.xml diff --git a/Languages/ChineseSimplified (简体中文)/Keyed/WULA_SkillTrainer.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_SkillTrainer.xml similarity index 100% rename from Languages/ChineseSimplified (简体中文)/Keyed/WULA_SkillTrainer.xml rename to 1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_SkillTrainer.xml diff --git a/Patches/Patch.xml b/1.6/1.6/Patches/Patch.xml similarity index 100% rename from Patches/Patch.xml rename to 1.6/1.6/Patches/Patch.xml diff --git a/1.6/Mods/Anomaly/BodyAndPartDefs/Bodyparts_WULA_FE_Spiritualist.xml b/1.6/Anomaly/BodyAndPartDefs/Bodyparts_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/BodyAndPartDefs/Bodyparts_WULA_FE_Spiritualist.xml rename to 1.6/Anomaly/BodyAndPartDefs/Bodyparts_WULA_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/FactionDefs/Factions_WULA_FE_Spiritualist.xml b/1.6/Anomaly/FactionDefs/Factions_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/FactionDefs/Factions_WULA_FE_Spiritualist.xml rename to 1.6/Anomaly/FactionDefs/Factions_WULA_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/HediffDefs/Hediffs_WULA_FE_Spiritualist.xml b/1.6/Anomaly/HediffDefs/Hediffs_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/HediffDefs/Hediffs_WULA_FE_Spiritualist.xml rename to 1.6/Anomaly/HediffDefs/Hediffs_WULA_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/PawnKinds/PawnKinds_Wula_FE_Spiritualist.xml b/1.6/Anomaly/PawnKinds/PawnKinds_Wula_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/PawnKinds/PawnKinds_Wula_FE_Spiritualist.xml rename to 1.6/Anomaly/PawnKinds/PawnKinds_Wula_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/PsychicRitualDefs/WULA_FE_Spiritualist_Rituals.xml b/1.6/Anomaly/PsychicRitualDefs/WULA_FE_Spiritualist_Rituals.xml similarity index 100% rename from 1.6/Mods/Anomaly/PsychicRitualDefs/WULA_FE_Spiritualist_Rituals.xml rename to 1.6/Anomaly/PsychicRitualDefs/WULA_FE_Spiritualist_Rituals.xml diff --git a/1.6/Mods/Anomaly/ResearchProjectDefs/ResearchProjects_WULA_FE_Spiritualist.xml b/1.6/Anomaly/ResearchProjectDefs/ResearchProjects_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/ResearchProjectDefs/ResearchProjects_WULA_FE_Spiritualist.xml rename to 1.6/Anomaly/ResearchProjectDefs/ResearchProjects_WULA_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/ResearchTabDef/ResearchTabs_WULA_FE_Spiritualist.xml b/1.6/Anomaly/ResearchTabDef/ResearchTabs_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/ResearchTabDef/ResearchTabs_WULA_FE_Spiritualist.xml rename to 1.6/Anomaly/ResearchTabDef/ResearchTabs_WULA_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/ThingDefs/WULA_FE_Spiritualist_Item.xml b/1.6/Anomaly/ThingDefs/WULA_FE_Spiritualist_Item.xml similarity index 100% rename from 1.6/Mods/Anomaly/ThingDefs/WULA_FE_Spiritualist_Item.xml rename to 1.6/Anomaly/ThingDefs/WULA_FE_Spiritualist_Item.xml diff --git a/1.6/Mods/Anomaly/ThingDefs_Misc/Apperals/WULA_FE_Spiritualist_Apparel.xml b/1.6/Anomaly/ThingDefs_Misc/Apperals/WULA_FE_Spiritualist_Apparel.xml similarity index 100% rename from 1.6/Mods/Anomaly/ThingDefs_Misc/Apperals/WULA_FE_Spiritualist_Apparel.xml rename to 1.6/Anomaly/ThingDefs_Misc/Apperals/WULA_FE_Spiritualist_Apparel.xml diff --git a/1.6/Mods/Anomaly/ThingDefs_Misc/Weapons/WULA_FE_Spiritualist_Weapon.xml b/1.6/Anomaly/ThingDefs_Misc/Weapons/WULA_FE_Spiritualist_Weapon.xml similarity index 100% rename from 1.6/Mods/Anomaly/ThingDefs_Misc/Weapons/WULA_FE_Spiritualist_Weapon.xml rename to 1.6/Anomaly/ThingDefs_Misc/Weapons/WULA_FE_Spiritualist_Weapon.xml diff --git a/1.6/Mods/Anomaly/ThingDefs_Races/Races_Wulaspecies_FE_Spiritualist.xml b/1.6/Anomaly/ThingDefs_Races/Races_Wulaspecies_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/ThingDefs_Races/Races_Wulaspecies_FE_Spiritualist.xml rename to 1.6/Anomaly/ThingDefs_Races/Races_Wulaspecies_FE_Spiritualist.xml diff --git a/1.6/Mods/Anomaly/TraderKindDefs/TraderKinds_WULA_FE_Spiritualist.xml b/1.6/Anomaly/TraderKindDefs/TraderKinds_WULA_FE_Spiritualist.xml similarity index 100% rename from 1.6/Mods/Anomaly/TraderKindDefs/TraderKinds_WULA_FE_Spiritualist.xml rename to 1.6/Anomaly/TraderKindDefs/TraderKinds_WULA_FE_Spiritualist.xml diff --git a/Textures/Wula/Apparel/WULA_Apperal_Empty.png b/Content/Textures/Wula/Apparel/WULA_Apperal_Empty.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Apperal_Empty.png rename to Content/Textures/Wula/Apparel/WULA_Apperal_Empty.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_Helmet.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_east.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_east.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_east.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_north.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_north.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_north.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_south.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_south.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_Helmet_south.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Body_Suit.png b/Content/Textures/Wula/Apparel/WULA_Body_Suit.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Body_Suit.png rename to Content/Textures/Wula/Apparel/WULA_Body_Suit.png diff --git a/Textures/Wula/Apparel/WULA_Body_Suit_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Body_Suit_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Body_Suit_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Body_Suit_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Body_Suit_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Body_Suit_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Body_Suit_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Body_Suit_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Body_Suit_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Body_Suit_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Body_Suit_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Body_Suit_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_White.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_White.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_White.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_White.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Bodystocking_White_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_east.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_east.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_east.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_north.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_north.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_north.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Knight_Helmet.png b/Content/Textures/Wula/Apparel/WULA_Knight_Helmet.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_Helmet.png rename to Content/Textures/Wula/Apparel/WULA_Knight_Helmet.png diff --git a/Textures/Wula/Apparel/WULA_Knight_Helmet_east.png b/Content/Textures/Wula/Apparel/WULA_Knight_Helmet_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_Helmet_east.png rename to Content/Textures/Wula/Apparel/WULA_Knight_Helmet_east.png diff --git a/Textures/Wula/Apparel/WULA_Knight_Helmet_north.png b/Content/Textures/Wula/Apparel/WULA_Knight_Helmet_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_Helmet_north.png rename to Content/Textures/Wula/Apparel/WULA_Knight_Helmet_north.png diff --git a/Textures/Wula/Apparel/WULA_Knight_Helmet_south.png b/Content/Textures/Wula/Apparel/WULA_Knight_Helmet_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_Helmet_south.png rename to Content/Textures/Wula/Apparel/WULA_Knight_Helmet_south.png diff --git a/Textures/Wula/Apparel/WULA_Knight_PowerArmor.png b/Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_PowerArmor.png rename to Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor.png diff --git a/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_west.png b/Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_west.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_west.png rename to Content/Textures/Wula/Apparel/WULA_Knight_PowerArmor_Thin_west.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform_Headband.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_east.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_east.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_east.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_south.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_south.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Headband_south.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Maid_Uniform_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Nun_Uniform.png b/Content/Textures/Wula/Apparel/WULA_Nun_Uniform.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_Uniform.png rename to Content/Textures/Wula/Apparel/WULA_Nun_Uniform.png diff --git a/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_west.png b/Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_west.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_west.png rename to Content/Textures/Wula/Apparel/WULA_Nun_Uniform_Thin_west.png diff --git a/Textures/Wula/Apparel/WULA_Nun_veil.png b/Content/Textures/Wula/Apparel/WULA_Nun_veil.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_veil.png rename to Content/Textures/Wula/Apparel/WULA_Nun_veil.png diff --git a/Textures/Wula/Apparel/WULA_Nun_veil_east.png b/Content/Textures/Wula/Apparel/WULA_Nun_veil_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_veil_east.png rename to Content/Textures/Wula/Apparel/WULA_Nun_veil_east.png diff --git a/Textures/Wula/Apparel/WULA_Nun_veil_north.png b/Content/Textures/Wula/Apparel/WULA_Nun_veil_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_veil_north.png rename to Content/Textures/Wula/Apparel/WULA_Nun_veil_north.png diff --git a/Textures/Wula/Apparel/WULA_Nun_veil_south.png b/Content/Textures/Wula/Apparel/WULA_Nun_veil_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nun_veil_south.png rename to Content/Textures/Wula/Apparel/WULA_Nun_veil_south.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_east.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_east.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_east.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_north.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_north.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_north.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_west.png b/Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_west.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_west.png rename to Content/Textures/Wula/Apparel/WULA_Nurse_Uniform_Thin_west.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Hat.png b/Content/Textures/Wula/Apparel/WULA_Priest_Hat.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Hat.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Hat.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Hat_east.png b/Content/Textures/Wula/Apparel/WULA_Priest_Hat_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Hat_east.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Hat_east.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Hat_north.png b/Content/Textures/Wula/Apparel/WULA_Priest_Hat_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Hat_north.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Hat_north.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Hat_south.png b/Content/Textures/Wula/Apparel/WULA_Priest_Hat_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Hat_south.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Hat_south.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Uniform.png b/Content/Textures/Wula/Apparel/WULA_Priest_Uniform.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Uniform.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Uniform.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Priest_Uniform_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Qipao.png b/Content/Textures/Wula/Apparel/WULA_Qipao.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Qipao.png rename to Content/Textures/Wula/Apparel/WULA_Qipao.png diff --git a/Textures/Wula/Apparel/WULA_Qipao_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Qipao_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Qipao_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Qipao_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Qipao_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Qipao_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Qipao_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Qipao_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Qipao_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Qipao_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Qipao_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Qipao_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Sailor_Dress.png b/Content/Textures/Wula/Apparel/WULA_Sailor_Dress.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Sailor_Dress.png rename to Content/Textures/Wula/Apparel/WULA_Sailor_Dress.png diff --git a/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Sailor_Dress_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Base.png b/Content/Textures/Wula/Apparel/WULA_Shield_Base.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Base.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Base.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Base_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Shield_Base_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Base_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Base_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Base_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Shield_Base_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Base_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Base_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Base_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Shield_Base_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Base_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Base_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Prismatic.png b/Content/Textures/Wula/Apparel/WULA_Shield_Prismatic.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Prismatic.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Prismatic.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Shield_Prismatic_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_Uniform.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_Uniform.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_veil.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_veil.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_veil.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_veil.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_veil_east.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_veil_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_veil_east.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_veil_east.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_veil_north.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_veil_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_veil_north.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_veil_north.png diff --git a/Textures/Wula/Apparel/WULA_Skitarii_veil_south.png b/Content/Textures/Wula/Apparel/WULA_Skitarii_veil_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_Skitarii_veil_south.png rename to Content/Textures/Wula/Apparel/WULA_Skitarii_veil_south.png diff --git a/Textures/Wula/Apparel/WULA_official_uniform.png b/Content/Textures/Wula/Apparel/WULA_official_uniform.png similarity index 100% rename from Textures/Wula/Apparel/WULA_official_uniform.png rename to Content/Textures/Wula/Apparel/WULA_official_uniform.png diff --git a/Textures/Wula/Apparel/WULA_official_uniform_Thin_east.png b/Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_east.png similarity index 100% rename from Textures/Wula/Apparel/WULA_official_uniform_Thin_east.png rename to Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_east.png diff --git a/Textures/Wula/Apparel/WULA_official_uniform_Thin_north.png b/Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_north.png similarity index 100% rename from Textures/Wula/Apparel/WULA_official_uniform_Thin_north.png rename to Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_north.png diff --git a/Textures/Wula/Apparel/WULA_official_uniform_Thin_south.png b/Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_south.png similarity index 100% rename from Textures/Wula/Apparel/WULA_official_uniform_Thin_south.png rename to Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_south.png diff --git a/Textures/Wula/Apparel/WULA_official_uniform_Thin_west.png b/Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_west.png similarity index 100% rename from Textures/Wula/Apparel/WULA_official_uniform_Thin_west.png rename to Content/Textures/Wula/Apparel/WULA_official_uniform_Thin_west.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor.png b/Content/Textures/Wula/Building/Door/WulaAutodoor.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor_BluePrint.png b/Content/Textures/Wula/Building/Door/WulaAutodoor_BluePrint.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor_BluePrint.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor_BluePrint.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor_Mover.png b/Content/Textures/Wula/Building/Door/WulaAutodoor_Mover.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor_Mover.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor_Mover.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor_Mover_east.png b/Content/Textures/Wula/Building/Door/WulaAutodoor_Mover_east.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor_Mover_east.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor_Mover_east.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor_Mover_south.png b/Content/Textures/Wula/Building/Door/WulaAutodoor_Mover_south.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor_Mover_south.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor_Mover_south.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor_east.png b/Content/Textures/Wula/Building/Door/WulaAutodoor_east.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor_east.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor_east.png diff --git a/Textures/Wula/Building/Door/WulaAutodoor_south.png b/Content/Textures/Wula/Building/Door/WulaAutodoor_south.png similarity index 100% rename from Textures/Wula/Building/Door/WulaAutodoor_south.png rename to Content/Textures/Wula/Building/Door/WulaAutodoor_south.png diff --git a/Textures/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png b/Content/Textures/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png similarity index 100% rename from Textures/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png rename to Content/Textures/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png diff --git a/Textures/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png b/Content/Textures/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png similarity index 100% rename from Textures/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png rename to Content/Textures/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png diff --git a/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png b/Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png rename to Content/Textures/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png diff --git a/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd b/Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd rename to Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd diff --git a/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd b/Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd rename to Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd diff --git a/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd b/Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd rename to Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd diff --git a/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd b/Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd rename to Content/Textures/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd diff --git a/Textures/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png b/Content/Textures/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png similarity index 100% rename from Textures/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png rename to Content/Textures/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png diff --git a/Textures/Wula/Building/WULA_Charging_Station_Synth_east.png b/Content/Textures/Wula/Building/WULA_Charging_Station_Synth_east.png similarity index 100% rename from Textures/Wula/Building/WULA_Charging_Station_Synth_east.png rename to Content/Textures/Wula/Building/WULA_Charging_Station_Synth_east.png diff --git a/Textures/Wula/Building/WULA_Charging_Station_Synth_north.png b/Content/Textures/Wula/Building/WULA_Charging_Station_Synth_north.png similarity index 100% rename from Textures/Wula/Building/WULA_Charging_Station_Synth_north.png rename to Content/Textures/Wula/Building/WULA_Charging_Station_Synth_north.png diff --git a/Textures/Wula/Building/WULA_Charging_Station_Synth_south.png b/Content/Textures/Wula/Building/WULA_Charging_Station_Synth_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Charging_Station_Synth_south.png rename to Content/Textures/Wula/Building/WULA_Charging_Station_Synth_south.png diff --git a/Textures/Wula/Building/WULA_Communicator_Station.png b/Content/Textures/Wula/Building/WULA_Communicator_Station.png similarity index 100% rename from Textures/Wula/Building/WULA_Communicator_Station.png rename to Content/Textures/Wula/Building/WULA_Communicator_Station.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_BIO_east.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_BIO_east.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_BIO_east.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_BIO_east.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_BIO_north.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_BIO_north.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_BIO_north.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_BIO_north.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_BIO_south.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_BIO_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_BIO_south.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_BIO_south.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_Component_east.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_Component_east.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_Component_east.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_Component_east.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_Component_north.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_Component_north.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_Component_north.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_Component_north.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_Component_south.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_Component_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_Component_south.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_Component_south.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_Energy_east.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_Energy_east.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_Energy_east.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_Energy_east.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_Energy_north.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_Energy_north.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_Energy_north.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_Energy_north.png diff --git a/Textures/Wula/Building/WULA_Cube_Productor_Energy_south.png b/Content/Textures/Wula/Building/WULA_Cube_Productor_Energy_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Cube_Productor_Energy_south.png rename to Content/Textures/Wula/Building/WULA_Cube_Productor_Energy_south.png diff --git a/Textures/Wula/Building/WULA_Floor.png b/Content/Textures/Wula/Building/WULA_Floor.png similarity index 100% rename from Textures/Wula/Building/WULA_Floor.png rename to Content/Textures/Wula/Building/WULA_Floor.png diff --git a/Textures/Wula/Building/WULA_Floor_Icon.png b/Content/Textures/Wula/Building/WULA_Floor_Icon.png similarity index 100% rename from Textures/Wula/Building/WULA_Floor_Icon.png rename to Content/Textures/Wula/Building/WULA_Floor_Icon.png diff --git a/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_east.png b/Content/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_east.png similarity index 100% rename from Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_east.png rename to Content/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_east.png diff --git a/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_north.png b/Content/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_north.png similarity index 100% rename from Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_north.png rename to Content/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_north.png diff --git a/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_south.png b/Content/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_south.png rename to Content/Textures/Wula/Building/WULA_Heavy_War_Machine_Productor_south.png diff --git a/Textures/Wula/Building/WULA_Nourishment_Center_Unit.png b/Content/Textures/Wula/Building/WULA_Nourishment_Center_Unit.png similarity index 100% rename from Textures/Wula/Building/WULA_Nourishment_Center_Unit.png rename to Content/Textures/Wula/Building/WULA_Nourishment_Center_Unit.png diff --git a/Textures/Wula/Building/WULA_Synth_Maintainer_south.png b/Content/Textures/Wula/Building/WULA_Synth_Maintainer_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Synth_Maintainer_south.png rename to Content/Textures/Wula/Building/WULA_Synth_Maintainer_south.png diff --git a/Textures/Wula/Building/WULA_Synth_Server_east.png b/Content/Textures/Wula/Building/WULA_Synth_Server_east.png similarity index 100% rename from Textures/Wula/Building/WULA_Synth_Server_east.png rename to Content/Textures/Wula/Building/WULA_Synth_Server_east.png diff --git a/Textures/Wula/Building/WULA_Synth_Server_north.png b/Content/Textures/Wula/Building/WULA_Synth_Server_north.png similarity index 100% rename from Textures/Wula/Building/WULA_Synth_Server_north.png rename to Content/Textures/Wula/Building/WULA_Synth_Server_north.png diff --git a/Textures/Wula/Building/WULA_Synth_Server_south.png b/Content/Textures/Wula/Building/WULA_Synth_Server_south.png similarity index 100% rename from Textures/Wula/Building/WULA_Synth_Server_south.png rename to Content/Textures/Wula/Building/WULA_Synth_Server_south.png diff --git a/Textures/Wula/Building/WULA_Turret_Component.png b/Content/Textures/Wula/Building/WULA_Turret_Component.png similarity index 100% rename from Textures/Wula/Building/WULA_Turret_Component.png rename to Content/Textures/Wula/Building/WULA_Turret_Component.png diff --git a/Textures/Wula/Building/WULA_WM_Panzer_Autocannon.png b/Content/Textures/Wula/Building/WULA_WM_Panzer_Autocannon.png similarity index 100% rename from Textures/Wula/Building/WULA_WM_Panzer_Autocannon.png rename to Content/Textures/Wula/Building/WULA_WM_Panzer_Autocannon.png diff --git a/Textures/Wula/Building/Wula_AI_Heavy_Panzer_Gunnery_Turret.png b/Content/Textures/Wula/Building/Wula_AI_Heavy_Panzer_Gunnery_Turret.png similarity index 100% rename from Textures/Wula/Building/Wula_AI_Heavy_Panzer_Gunnery_Turret.png rename to Content/Textures/Wula/Building/Wula_AI_Heavy_Panzer_Gunnery_Turret.png diff --git a/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png b/Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png similarity index 100% rename from Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png rename to Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png diff --git a/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_east.png b/Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_east.png similarity index 100% rename from Textures/Wula/Building/Wula_DarkEnergy_FuelTank_east.png rename to Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_east.png diff --git a/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_north.png b/Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_north.png similarity index 100% rename from Textures/Wula/Building/Wula_DarkEnergy_FuelTank_north.png rename to Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_north.png diff --git a/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_south.png b/Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_south.png similarity index 100% rename from Textures/Wula/Building/Wula_DarkEnergy_FuelTank_south.png rename to Content/Textures/Wula/Building/Wula_DarkEnergy_FuelTank_south.png diff --git a/Textures/Wula/Events/Portraits/WULA_Anisia_1.png b/Content/Textures/Wula/Events/Portraits/WULA_Anisia_1.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_Anisia_1.png rename to Content/Textures/Wula/Events/Portraits/WULA_Anisia_1.png diff --git a/Textures/Wula/Events/Portraits/WULA_Anisia_2.png b/Content/Textures/Wula/Events/Portraits/WULA_Anisia_2.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_Anisia_2.png rename to Content/Textures/Wula/Events/Portraits/WULA_Anisia_2.png diff --git a/Textures/Wula/Events/Portraits/WULA_Anisia_3.png b/Content/Textures/Wula/Events/Portraits/WULA_Anisia_3.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_Anisia_3.png rename to Content/Textures/Wula/Events/Portraits/WULA_Anisia_3.png diff --git a/Textures/Wula/Events/Portraits/WULA_Anisia_4.png b/Content/Textures/Wula/Events/Portraits/WULA_Anisia_4.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_Anisia_4.png rename to Content/Textures/Wula/Events/Portraits/WULA_Anisia_4.png diff --git a/Textures/Wula/Events/Portraits/WULA_Anisia_5.png b/Content/Textures/Wula/Events/Portraits/WULA_Anisia_5.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_Anisia_5.png rename to Content/Textures/Wula/Events/Portraits/WULA_Anisia_5.png diff --git a/Textures/Wula/Events/Portraits/WULA_Anisia_6.png b/Content/Textures/Wula/Events/Portraits/WULA_Anisia_6.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_Anisia_6.png rename to Content/Textures/Wula/Events/Portraits/WULA_Anisia_6.png diff --git a/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_1.png b/Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_1.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_1.png rename to Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_1.png diff --git a/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_2.png b/Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_2.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_2.png rename to Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_2.png diff --git a/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_3.png b/Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_3.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_3.png rename to Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_3.png diff --git a/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_4.png b/Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_4.png similarity index 100% rename from Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_4.png rename to Content/Textures/Wula/Events/Portraits/WULA_FE_Spiritualist_4.png diff --git a/Textures/Wula/Events/Portraits/Wula_insignal.png b/Content/Textures/Wula/Events/Portraits/Wula_insignal.png similarity index 100% rename from Textures/Wula/Events/Portraits/Wula_insignal.png rename to Content/Textures/Wula/Events/Portraits/Wula_insignal.png diff --git a/Textures/Wula/Hair/WULA_Double_Ponytail_Long_east.png b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_east.png similarity index 100% rename from Textures/Wula/Hair/WULA_Double_Ponytail_Long_east.png rename to Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_east.png diff --git a/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png similarity index 100% rename from Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png rename to Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png diff --git a/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png similarity index 100% rename from Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png rename to Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png diff --git a/Textures/Wula/Hair/WULA_High_Ponytail_east.png b/Content/Textures/Wula/Hair/WULA_High_Ponytail_east.png similarity index 100% rename from Textures/Wula/Hair/WULA_High_Ponytail_east.png rename to Content/Textures/Wula/Hair/WULA_High_Ponytail_east.png diff --git a/Textures/Wula/Hair/WULA_High_Ponytail_north.png b/Content/Textures/Wula/Hair/WULA_High_Ponytail_north.png similarity index 100% rename from Textures/Wula/Hair/WULA_High_Ponytail_north.png rename to Content/Textures/Wula/Hair/WULA_High_Ponytail_north.png diff --git a/Textures/Wula/Hair/WULA_High_Ponytail_south.png b/Content/Textures/Wula/Hair/WULA_High_Ponytail_south.png similarity index 100% rename from Textures/Wula/Hair/WULA_High_Ponytail_south.png rename to Content/Textures/Wula/Hair/WULA_High_Ponytail_south.png diff --git a/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png similarity index 100% rename from Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png rename to Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png diff --git a/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png similarity index 100% rename from Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png rename to Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png diff --git a/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png similarity index 100% rename from Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png rename to Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png diff --git a/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png similarity index 100% rename from Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png rename to Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png diff --git a/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png similarity index 100% rename from Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png rename to Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png diff --git a/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png similarity index 100% rename from Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png rename to Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png diff --git a/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png similarity index 100% rename from Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png rename to Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png diff --git a/Textures/Wula/Hair/WULA_Scattered_Hair_Long_east.png b/Content/Textures/Wula/Hair/WULA_Scattered_Hair_Long_east.png similarity index 100% rename from Textures/Wula/Hair/WULA_Scattered_Hair_Long_east.png rename to Content/Textures/Wula/Hair/WULA_Scattered_Hair_Long_east.png diff --git a/Textures/Wula/Hair/WULA_Scattered_Hair_Long_north.png b/Content/Textures/Wula/Hair/WULA_Scattered_Hair_Long_north.png similarity index 100% rename from Textures/Wula/Hair/WULA_Scattered_Hair_Long_north.png rename to Content/Textures/Wula/Hair/WULA_Scattered_Hair_Long_north.png diff --git a/Textures/Wula/Hair/WULA_Scattered_Hair_Long_south.png b/Content/Textures/Wula/Hair/WULA_Scattered_Hair_Long_south.png similarity index 100% rename from Textures/Wula/Hair/WULA_Scattered_Hair_Long_south.png rename to Content/Textures/Wula/Hair/WULA_Scattered_Hair_Long_south.png diff --git a/Textures/Wula/Item/WULA_Charge_Cube.png b/Content/Textures/Wula/Item/WULA_Charge_Cube.png similarity index 100% rename from Textures/Wula/Item/WULA_Charge_Cube.png rename to Content/Textures/Wula/Item/WULA_Charge_Cube.png diff --git a/Textures/Wula/Item/WULA_Dark_Matter_Item.png b/Content/Textures/Wula/Item/WULA_Dark_Matter_Item.png similarity index 100% rename from Textures/Wula/Item/WULA_Dark_Matter_Item.png rename to Content/Textures/Wula/Item/WULA_Dark_Matter_Item.png diff --git a/Textures/Wula/Item/WULA_Default_Item.png b/Content/Textures/Wula/Item/WULA_Default_Item.png similarity index 100% rename from Textures/Wula/Item/WULA_Default_Item.png rename to Content/Textures/Wula/Item/WULA_Default_Item.png diff --git a/Textures/Wula/Item/WULA_MechRepairKit.png b/Content/Textures/Wula/Item/WULA_MechRepairKit.png similarity index 100% rename from Textures/Wula/Item/WULA_MechRepairKit.png rename to Content/Textures/Wula/Item/WULA_MechRepairKit.png diff --git a/Textures/Wula/Item/WULA_Neutronium.png b/Content/Textures/Wula/Item/WULA_Neutronium.png similarity index 100% rename from Textures/Wula/Item/WULA_Neutronium.png rename to Content/Textures/Wula/Item/WULA_Neutronium.png diff --git a/Textures/Wula/Item/WULA_Soul_Wedge.png b/Content/Textures/Wula/Item/WULA_Soul_Wedge.png similarity index 100% rename from Textures/Wula/Item/WULA_Soul_Wedge.png rename to Content/Textures/Wula/Item/WULA_Soul_Wedge.png diff --git a/Textures/Wula/Item/WULA_Syhth_Passion_Trainer.png b/Content/Textures/Wula/Item/WULA_Syhth_Passion_Trainer.png similarity index 100% rename from Textures/Wula/Item/WULA_Syhth_Passion_Trainer.png rename to Content/Textures/Wula/Item/WULA_Syhth_Passion_Trainer.png diff --git a/Textures/Wula/Item/WULA_Syhth_Trainer.png b/Content/Textures/Wula/Item/WULA_Syhth_Trainer.png similarity index 100% rename from Textures/Wula/Item/WULA_Syhth_Trainer.png rename to Content/Textures/Wula/Item/WULA_Syhth_Trainer.png diff --git a/Textures/Wula/Item/WULA_charge_cube_No_Power.png b/Content/Textures/Wula/Item/WULA_charge_cube_No_Power.png similarity index 100% rename from Textures/Wula/Item/WULA_charge_cube_No_Power.png rename to Content/Textures/Wula/Item/WULA_charge_cube_No_Power.png diff --git a/Textures/Wula/Item/Wula_Zro.png b/Content/Textures/Wula/Item/Wula_Zro.png similarity index 100% rename from Textures/Wula/Item/Wula_Zro.png rename to Content/Textures/Wula/Item/Wula_Zro.png diff --git a/Textures/Wula/Mote/WULA_Bullet_Dark_Matter_Beam.png b/Content/Textures/Wula/Mote/WULA_Bullet_Dark_Matter_Beam.png similarity index 100% rename from Textures/Wula/Mote/WULA_Bullet_Dark_Matter_Beam.png rename to Content/Textures/Wula/Mote/WULA_Bullet_Dark_Matter_Beam.png diff --git a/Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png b/Content/Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png similarity index 100% rename from Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png rename to Content/Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png diff --git a/Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png b/Content/Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png similarity index 100% rename from Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png rename to Content/Textures/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png diff --git a/Textures/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png b/Content/Textures/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png similarity index 100% rename from Textures/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png rename to Content/Textures/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png diff --git a/Textures/Wula/Projectile/WULA_Mortar_Shell.png b/Content/Textures/Wula/Projectile/WULA_Mortar_Shell.png similarity index 100% rename from Textures/Wula/Projectile/WULA_Mortar_Shell.png rename to Content/Textures/Wula/Projectile/WULA_Mortar_Shell.png diff --git a/Textures/Wula/Projectile/WULA_Photon_Missile.png b/Content/Textures/Wula/Projectile/WULA_Photon_Missile.png similarity index 100% rename from Textures/Wula/Projectile/WULA_Photon_Missile.png rename to Content/Textures/Wula/Projectile/WULA_Photon_Missile.png diff --git a/Textures/Wula/Projectile/WULA_Shrapnel.png b/Content/Textures/Wula/Projectile/WULA_Shrapnel.png similarity index 100% rename from Textures/Wula/Projectile/WULA_Shrapnel.png rename to Content/Textures/Wula/Projectile/WULA_Shrapnel.png diff --git a/Textures/Wula/Storyteller/WULA_Anisia.png b/Content/Textures/Wula/Storyteller/WULA_Anisia.png similarity index 100% rename from Textures/Wula/Storyteller/WULA_Anisia.png rename to Content/Textures/Wula/Storyteller/WULA_Anisia.png diff --git a/Textures/Wula/Storyteller/WULA_Anisia_TINY.png b/Content/Textures/Wula/Storyteller/WULA_Anisia_TINY.png similarity index 100% rename from Textures/Wula/Storyteller/WULA_Anisia_TINY.png rename to Content/Textures/Wula/Storyteller/WULA_Anisia_TINY.png diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png b/Content/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png rename to Content/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png diff --git a/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png b/Content/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png rename to Content/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png diff --git a/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png b/Content/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png rename to Content/Textures/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_east.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_south.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/angled_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_east.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_south.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/flat_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_east.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_south.png b/Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Brows/Normal/Unisex/s-shaped_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_east.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_south.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_west.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_L_west.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_east.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_south.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_west.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Common/Unisex/normal_R_west.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_blush_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/part_normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_north.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_west.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/LeftChin/Unisex/normal_west.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_north.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_north.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_north.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_west.png b/Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_west.png rename to Content/Textures/Wula/Things/WulaSpecies/Skins/RightEye/Unisex/normal_west.png diff --git a/Textures/Wula/Things/WulaSpecies/WULA_Species_Icon.png b/Content/Textures/Wula/Things/WulaSpecies/WULA_Species_Icon.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/WULA_Species_Icon.png rename to Content/Textures/Wula/Things/WulaSpecies/WULA_Species_Icon.png diff --git a/Textures/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png b/Content/Textures/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png similarity index 100% rename from Textures/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png rename to Content/Textures/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_east.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_east.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_east.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_north.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_north.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_north.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Addons/WULA_Bow_Tie_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_east.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_east.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_north.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_north.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Bodies/Naked_Thin_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_north.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_north.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_north.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_west.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_west.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_west.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads/Average_Normal_west.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_east.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_east.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_east.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_north.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_north.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_north.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/blush_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_east.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_east.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_north.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_north.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_north.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_north.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/normal_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_east.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_east.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_east.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_blush_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_east.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_east.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_east.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_east.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_south.png b/Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_south.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_south.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/Heads_Blank/Normal/Unisex/part_normal_south.png diff --git a/Textures/Wula/Things/WulaSpeciesReal/WULA_Species_Icon.png b/Content/Textures/Wula/Things/WulaSpeciesReal/WULA_Species_Icon.png similarity index 100% rename from Textures/Wula/Things/WulaSpeciesReal/WULA_Species_Icon.png rename to Content/Textures/Wula/Things/WulaSpeciesReal/WULA_Species_Icon.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png diff --git a/Textures/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png b/Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png rename to Content/Textures/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png diff --git a/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png similarity index 100% rename from Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png rename to Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png diff --git a/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png rename to Content/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png diff --git a/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png rename to Content/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png diff --git a/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png rename to Content/Textures/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png diff --git a/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png b/Content/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png rename to Content/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png diff --git a/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png b/Content/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png rename to Content/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png diff --git a/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png b/Content/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png rename to Content/Textures/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png diff --git a/Textures/Wula/Things/Wula_Armour/Wula_Armour_Icon.png b/Content/Textures/Wula/Things/Wula_Armour/Wula_Armour_Icon.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/Wula_Armour_Icon.png rename to Content/Textures/Wula/Things/Wula_Armour/Wula_Armour_Icon.png diff --git a/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png b/Content/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png rename to Content/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png diff --git a/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png b/Content/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png rename to Content/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png diff --git a/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png rename to Content/Textures/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png diff --git a/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png similarity index 100% rename from Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png rename to Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png diff --git a/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png diff --git a/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png diff --git a/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png diff --git a/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png diff --git a/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png diff --git a/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png diff --git a/Textures/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png b/Content/Textures/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png similarity index 100% rename from Textures/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png rename to Content/Textures/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png diff --git a/Textures/Wula/Weapon/WULA_MW_Armour_Lance.png b/Content/Textures/Wula/Weapon/WULA_MW_Armour_Lance.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Armour_Lance.png rename to Content/Textures/Wula/Weapon/WULA_MW_Armour_Lance.png diff --git a/Textures/Wula/Weapon/WULA_MW_Breaker_Bar.png b/Content/Textures/Wula/Weapon/WULA_MW_Breaker_Bar.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Breaker_Bar.png rename to Content/Textures/Wula/Weapon/WULA_MW_Breaker_Bar.png diff --git a/Textures/Wula/Weapon/WULA_MW_ChainSword.png b/Content/Textures/Wula/Weapon/WULA_MW_ChainSword.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_ChainSword.png rename to Content/Textures/Wula/Weapon/WULA_MW_ChainSword.png diff --git a/Textures/Wula/Weapon/WULA_MW_Charge_Mace.png b/Content/Textures/Wula/Weapon/WULA_MW_Charge_Mace.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Charge_Mace.png rename to Content/Textures/Wula/Weapon/WULA_MW_Charge_Mace.png diff --git a/Textures/Wula/Weapon/WULA_MW_Constructor_Hammer.png b/Content/Textures/Wula/Weapon/WULA_MW_Constructor_Hammer.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Constructor_Hammer.png rename to Content/Textures/Wula/Weapon/WULA_MW_Constructor_Hammer.png diff --git a/Textures/Wula/Weapon/WULA_MW_Glaive.png b/Content/Textures/Wula/Weapon/WULA_MW_Glaive.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Glaive.png rename to Content/Textures/Wula/Weapon/WULA_MW_Glaive.png diff --git a/Textures/Wula/Weapon/WULA_MW_Lance.png b/Content/Textures/Wula/Weapon/WULA_MW_Lance.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Lance.png rename to Content/Textures/Wula/Weapon/WULA_MW_Lance.png diff --git a/Textures/Wula/Weapon/WULA_MW_Mace.png b/Content/Textures/Wula/Weapon/WULA_MW_Mace.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Mace.png rename to Content/Textures/Wula/Weapon/WULA_MW_Mace.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png diff --git a/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png b/Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png similarity index 100% rename from Textures/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png rename to Content/Textures/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png diff --git a/Textures/Wula/Weapon/WULA_RW_AutoCannon.png b/Content/Textures/Wula/Weapon/WULA_RW_AutoCannon.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_AutoCannon.png rename to Content/Textures/Wula/Weapon/WULA_RW_AutoCannon.png diff --git a/Textures/Wula/Weapon/WULA_RW_Auto_GL.png b/Content/Textures/Wula/Weapon/WULA_RW_Auto_GL.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Auto_GL.png rename to Content/Textures/Wula/Weapon/WULA_RW_Auto_GL.png diff --git a/Textures/Wula/Weapon/WULA_RW_Base_AR.png b/Content/Textures/Wula/Weapon/WULA_RW_Base_AR.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Base_AR.png rename to Content/Textures/Wula/Weapon/WULA_RW_Base_AR.png diff --git a/Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png b/Content/Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png rename to Content/Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png diff --git a/Textures/Wula/Weapon/WULA_RW_DM_AR.png b/Content/Textures/Wula/Weapon/WULA_RW_DM_AR.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_DM_AR.png rename to Content/Textures/Wula/Weapon/WULA_RW_DM_AR.png diff --git a/Textures/Wula/Weapon/WULA_RW_DM_Cannon.png b/Content/Textures/Wula/Weapon/WULA_RW_DM_Cannon.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_DM_Cannon.png rename to Content/Textures/Wula/Weapon/WULA_RW_DM_Cannon.png diff --git a/Textures/Wula/Weapon/WULA_RW_Fractal_RF.png b/Content/Textures/Wula/Weapon/WULA_RW_Fractal_RF.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Fractal_RF.png rename to Content/Textures/Wula/Weapon/WULA_RW_Fractal_RF.png diff --git a/Textures/Wula/Weapon/WULA_RW_Handle_Cannon.png b/Content/Textures/Wula/Weapon/WULA_RW_Handle_Cannon.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Handle_Cannon.png rename to Content/Textures/Wula/Weapon/WULA_RW_Handle_Cannon.png diff --git a/Textures/Wula/Weapon/WULA_RW_Photon_Missile.png b/Content/Textures/Wula/Weapon/WULA_RW_Photon_Missile.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Photon_Missile.png rename to Content/Textures/Wula/Weapon/WULA_RW_Photon_Missile.png diff --git a/Textures/Wula/Weapon/WULA_RW_Sphene_MG.png b/Content/Textures/Wula/Weapon/WULA_RW_Sphene_MG.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_Sphene_MG.png rename to Content/Textures/Wula/Weapon/WULA_RW_Sphene_MG.png diff --git a/Textures/Wula/Weapon/WULA_RW_StarDrift_SG.png b/Content/Textures/Wula/Weapon/WULA_RW_StarDrift_SG.png similarity index 100% rename from Textures/Wula/Weapon/WULA_RW_StarDrift_SG.png rename to Content/Textures/Wula/Weapon/WULA_RW_StarDrift_SG.png diff --git a/Textures/Wula/Weapon/WULA_SP_Cotton_Counter.png b/Content/Textures/Wula/Weapon/WULA_SP_Cotton_Counter.png similarity index 100% rename from Textures/Wula/Weapon/WULA_SP_Cotton_Counter.png rename to Content/Textures/Wula/Weapon/WULA_SP_Cotton_Counter.png diff --git a/Textures/Wula/Weapon/WULA_SP_Live_Shelter.png b/Content/Textures/Wula/Weapon/WULA_SP_Live_Shelter.png similarity index 100% rename from Textures/Wula/Weapon/WULA_SP_Live_Shelter.png rename to Content/Textures/Wula/Weapon/WULA_SP_Live_Shelter.png diff --git a/Textures/Wula/Weapon/WULA_SP_Mist_Incinerator.png b/Content/Textures/Wula/Weapon/WULA_SP_Mist_Incinerator.png similarity index 100% rename from Textures/Wula/Weapon/WULA_SP_Mist_Incinerator.png rename to Content/Textures/Wula/Weapon/WULA_SP_Mist_Incinerator.png diff --git a/Textures/Wula/Weapon/WULA_SP_Spear_Impale.png b/Content/Textures/Wula/Weapon/WULA_SP_Spear_Impale.png similarity index 100% rename from Textures/Wula/Weapon/WULA_SP_Spear_Impale.png rename to Content/Textures/Wula/Weapon/WULA_SP_Spear_Impale.png diff --git a/Textures/Wula/Weapon/WULA_SP_Spell_Medium.png b/Content/Textures/Wula/Weapon/WULA_SP_Spell_Medium.png similarity index 100% rename from Textures/Wula/Weapon/WULA_SP_Spell_Medium.png rename to Content/Textures/Wula/Weapon/WULA_SP_Spell_Medium.png diff --git a/Textures/Wula/Weapon/WULA_WM_Panzer_Autocannon.png b/Content/Textures/Wula/Weapon/WULA_WM_Panzer_Autocannon.png similarity index 100% rename from Textures/Wula/Weapon/WULA_WM_Panzer_Autocannon.png rename to Content/Textures/Wula/Weapon/WULA_WM_Panzer_Autocannon.png diff --git a/Textures/Wula/Weapon/WULA_WM_Panzer_Turret.png b/Content/Textures/Wula/Weapon/WULA_WM_Panzer_Turret.png similarity index 100% rename from Textures/Wula/Weapon/WULA_WM_Panzer_Turret.png rename to Content/Textures/Wula/Weapon/WULA_WM_Panzer_Turret.png diff --git a/Textures/Wula/Weapon/WULA_Weapon_Empty.png b/Content/Textures/Wula/Weapon/WULA_Weapon_Empty.png similarity index 100% rename from Textures/Wula/Weapon/WULA_Weapon_Empty.png rename to Content/Textures/Wula/Weapon/WULA_Weapon_Empty.png diff --git a/Textures/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png b/Content/Textures/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png similarity index 100% rename from Textures/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png rename to Content/Textures/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png diff --git a/Textures/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png b/Content/Textures/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png similarity index 100% rename from Textures/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png rename to Content/Textures/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png diff --git a/LoadFolders.xml b/LoadFolders.xml index 477da22a..f71ccb6a 100644 --- a/LoadFolders.xml +++ b/LoadFolders.xml @@ -1,7 +1,7 @@ -
  • /
  • -
  • 1.6
  • -
  • 1.6/Mods/Anomaly
  • +
  • 1.6/1.6
  • +
  • Content
  • +
  • 1.6/Anomaly
  • \ No newline at end of file diff --git a/MCP/mcpserver.log b/MCP/mcpserver.log new file mode 100644 index 00000000..e5c7d339 --- /dev/null +++ b/MCP/mcpserver.log @@ -0,0 +1,687 @@ +2025-08-03 15:44:02,402 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-03 15:44:02,412 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-03 15:44:02,419 - INFO - Processing request of type ListToolsRequest +2025-08-03 15:44:02,421 - INFO - Processing request of type ListResourcesRequest +2025-08-03 15:44:02,422 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-03 15:44:27,828 - INFO - Processing request of type CallToolRequest +2025-08-03 15:44:27,828 - INFO - 收到问题: 查找 CompProperties_Explosive 的定义和用法 +2025-08-03 15:44:27,828 - INFO - 找到的潜在关键词: [('CompProperties_Explosive', 3)] +2025-08-03 15:44:27,828 - INFO - 提取到关键词: CompProperties_Explosive +2025-08-03 15:44:27,828 - INFO - 缓存未命中,开始实时搜索: CompProperties_Explosive +2025-08-03 15:44:29,235 - INFO - 找到 31 个候选文件,开始向量化处理... +2025-08-03 15:44:42,863 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 15:50:03,065 - INFO - Processing request of type CallToolRequest +2025-08-03 15:50:03,065 - INFO - 收到问题: 查找 CompProperties_Explosive 的定义和用法 +2025-08-03 15:50:03,065 - INFO - 找到的潜在关键词: [('CompProperties_Explosive', 3)] +2025-08-03 15:50:03,065 - INFO - 提取到关键词: CompProperties_Explosive +2025-08-03 15:50:03,065 - INFO - 缓存命中: 关键词 'CompProperties_Explosive' +2025-08-03 15:53:04,845 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-03 15:53:04,853 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-03 15:53:51,828 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-03 15:53:51,838 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-03 15:53:51,846 - INFO - Processing request of type ListToolsRequest +2025-08-03 15:53:51,848 - INFO - Processing request of type ListResourcesRequest +2025-08-03 15:53:51,848 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-03 15:54:10,754 - INFO - Processing request of type CallToolRequest +2025-08-03 15:54:10,755 - INFO - 收到问题: 查找 CompProperties_Explosive 的定义 +2025-08-03 15:54:10,755 - INFO - 找到的潜在关键词: [('CompProperties_Explosive', 3)] +2025-08-03 15:54:10,755 - INFO - 提取到关键词: CompProperties_Explosive +2025-08-03 15:54:10,755 - INFO - 缓存未命中,开始实时搜索: CompProperties_Explosive +2025-08-03 15:54:12,401 - INFO - 找到 31 个候选文件,开始向量化处理... +2025-08-03 15:54:28,384 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 15:54:52,951 - INFO - Processing request of type CallToolRequest +2025-08-03 15:54:52,951 - INFO - 收到问题: 查找 CompProperties_Explosive 的定义 +2025-08-03 15:54:52,951 - INFO - 找到的潜在关键词: [('CompProperties_Explosive', 3)] +2025-08-03 15:54:52,951 - INFO - 提取到关键词: CompProperties_Explosive +2025-08-03 15:54:52,963 - INFO - 缓存命中: 关键词 'CompProperties_Explosive' +2025-08-03 18:58:03,910 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-03 18:58:03,919 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-03 18:58:03,927 - INFO - Processing request of type ListToolsRequest +2025-08-03 18:58:03,929 - INFO - Processing request of type ListResourcesRequest +2025-08-03 18:58:03,930 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-03 18:58:21,536 - INFO - Processing request of type CallToolRequest +2025-08-03 18:58:21,536 - INFO - 收到问题: AspirationWorker IsCompleted +2025-08-03 18:58:21,536 - INFO - 找到的潜在关键词: [('AspirationWorker', 2), ('IsCompleted', 2)] +2025-08-03 18:58:21,536 - INFO - 提取到关键词: AspirationWorker +2025-08-03 18:58:21,536 - INFO - 缓存未命中,开始实时搜索: AspirationWorker +2025-08-03 18:58:23,022 - INFO - 未找到与 'AspirationWorker' 相关的文件。 +2025-08-03 21:00:57,503 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-03 21:00:57,518 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-03 21:00:57,531 - INFO - Processing request of type ListToolsRequest +2025-08-03 21:00:57,533 - INFO - Processing request of type ListResourcesRequest +2025-08-03 21:00:57,535 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-03 21:12:32,710 - INFO - Processing request of type CallToolRequest +2025-08-03 21:12:32,713 - INFO - 收到问题: DamageDef additionalHediffsThisPart +2025-08-03 21:12:32,713 - INFO - 找到的潜在关键词: [('DamageDef', 2), ('additionalHediffsThisPart', 2)] +2025-08-03 21:12:32,713 - INFO - 提取到关键词: DamageDef +2025-08-03 21:12:32,713 - INFO - 缓存未命中,开始实时搜索: DamageDef +2025-08-03 21:12:34,071 - INFO - 找到 226 个候选文件,开始向量化处理... +2025-08-03 21:13:37,263 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:14:01,551 - INFO - Processing request of type CallToolRequest +2025-08-03 21:14:01,551 - INFO - 收到问题: DamageDef additionalHediffsThisPart +2025-08-03 21:14:01,551 - INFO - 找到的潜在关键词: [('DamageDef', 2), ('additionalHediffsThisPart', 2)] +2025-08-03 21:14:01,551 - INFO - 提取到关键词: DamageDef +2025-08-03 21:14:01,561 - INFO - 缓存命中: 关键词 'DamageDef' +2025-08-03 21:15:20,068 - INFO - Processing request of type CallToolRequest +2025-08-03 21:15:20,068 - INFO - 收到问题: DamageWorker Apply additionalHediffsThisPart +2025-08-03 21:15:20,068 - INFO - 找到的潜在关键词: [('DamageWorker', 2), ('Apply', 2), ('additionalHediffsThisPart', 2)] +2025-08-03 21:15:20,068 - INFO - 提取到关键词: DamageWorker +2025-08-03 21:15:20,068 - INFO - 缓存未命中,开始实时搜索: DamageWorker +2025-08-03 21:15:21,443 - INFO - 找到 37 个候选文件,开始向量化处理... +2025-08-03 21:15:30,428 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:16:16,210 - INFO - Processing request of type CallToolRequest +2025-08-03 21:16:16,210 - INFO - 收到问题: HediffDef +2025-08-03 21:16:16,210 - INFO - 找到的潜在关键词: [('HediffDef', 2)] +2025-08-03 21:16:16,210 - INFO - 提取到关键词: HediffDef +2025-08-03 21:16:16,211 - INFO - 缓存未命中,开始实时搜索: HediffDef +2025-08-03 21:16:17,587 - INFO - 找到 428 个候选文件,开始向量化处理... +2025-08-03 21:18:43,382 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:18:43,387 - INFO - Processing request of type CallToolRequest +2025-08-03 21:18:43,387 - INFO - 收到问题: HediffDef class +2025-08-03 21:18:43,387 - INFO - 找到的潜在关键词: [('HediffDef', 2)] +2025-08-03 21:18:43,387 - INFO - 提取到关键词: HediffDef +2025-08-03 21:18:43,392 - INFO - 缓存命中: 关键词 'HediffDef' +2025-08-03 21:18:55,913 - INFO - Processing request of type CallToolRequest +2025-08-03 21:18:55,913 - INFO - 收到问题: HediffMaker.MakeHediff +2025-08-03 21:18:55,913 - INFO - 找到的潜在关键词: [('HediffMaker.MakeHediff', 2)] +2025-08-03 21:18:55,913 - INFO - 提取到关键词: HediffMaker.MakeHediff +2025-08-03 21:18:55,913 - INFO - 缓存未命中,开始实时搜索: HediffMaker.MakeHediff +2025-08-03 21:18:57,267 - INFO - 找到 54 个候选文件,开始向量化处理... +2025-08-03 21:19:12,272 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:20:38,686 - INFO - Processing request of type CallToolRequest +2025-08-03 21:20:38,686 - INFO - 收到问题: DamageWorker Apply additionalHediffs +2025-08-03 21:20:38,686 - INFO - 找到的潜在关键词: [('DamageWorker', 2), ('Apply', 2), ('additionalHediffs', 2)] +2025-08-03 21:20:38,686 - INFO - 提取到关键词: DamageWorker +2025-08-03 21:20:38,687 - INFO - 缓存命中: 关键词 'DamageWorker' +2025-08-03 21:23:10,383 - INFO - Processing request of type CallToolRequest +2025-08-03 21:23:10,383 - INFO - 收到问题: DamageDefAdditionalHediff +2025-08-03 21:23:10,383 - INFO - 找到的潜在关键词: [('DamageDefAdditionalHediff', 2)] +2025-08-03 21:23:10,383 - INFO - 提取到关键词: DamageDefAdditionalHediff +2025-08-03 21:23:10,383 - INFO - 缓存未命中,开始实时搜索: DamageDefAdditionalHediff +2025-08-03 21:23:11,759 - INFO - 找到 5 个候选文件,开始向量化处理... +2025-08-03 21:23:13,303 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:40:06,239 - INFO - Processing request of type CallToolRequest +2025-08-03 21:40:06,239 - INFO - 收到问题: PsychicRitualDef +2025-08-03 21:40:06,239 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-03 21:40:06,239 - INFO - 提取到关键词: PsychicRitualDef +2025-08-03 21:40:06,239 - INFO - 缓存未命中,开始实时搜索: PsychicRitualDef +2025-08-03 21:40:07,588 - INFO - 找到 57 个候选文件,开始向量化处理... +2025-08-03 21:40:23,047 - WARNING - 未能从 C:\Steam\steamapps\common\RimWorld\Data\Anomaly\Languages\ChineseSimplified (简体中文)\Keyed\Misc_PsychicRituals.xml 提取到完整的代码块。 +2025-08-03 21:40:23,048 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:40:38,955 - INFO - Processing request of type CallToolRequest +2025-08-03 21:40:38,955 - INFO - 收到问题: CompProperties_PsychicRitualSpot +2025-08-03 21:40:38,955 - INFO - 找到的潜在关键词: [('CompProperties_PsychicRitualSpot', 3)] +2025-08-03 21:40:38,955 - INFO - 提取到关键词: CompProperties_PsychicRitualSpot +2025-08-03 21:40:38,955 - INFO - 缓存未命中,开始实时搜索: CompProperties_PsychicRitualSpot +2025-08-03 21:40:40,281 - INFO - 找到 2 个候选文件,开始向量化处理... +2025-08-03 21:40:41,046 - INFO - 向量搜索完成。找到了 2 个匹配项并成功提取了代码。 +2025-08-03 21:41:38,879 - INFO - Processing request of type CallToolRequest +2025-08-03 21:41:38,879 - INFO - 收到问题: PsychicRitualGizmo +2025-08-03 21:41:38,879 - INFO - 找到的潜在关键词: [('PsychicRitualGizmo', 2)] +2025-08-03 21:41:38,879 - INFO - 提取到关键词: PsychicRitualGizmo +2025-08-03 21:41:38,879 - INFO - 缓存未命中,开始实时搜索: PsychicRitualGizmo +2025-08-03 21:41:40,315 - INFO - 找到 3 个候选文件,开始向量化处理... +2025-08-03 21:41:41,300 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 21:43:48,740 - INFO - Processing request of type CallToolRequest +2025-08-03 21:43:48,740 - INFO - 收到问题: PsychicRitualDef_InvocationCircle +2025-08-03 21:43:48,740 - INFO - 找到的潜在关键词: [('PsychicRitualDef_InvocationCircle', 3)] +2025-08-03 21:43:48,740 - INFO - 提取到关键词: PsychicRitualDef_InvocationCircle +2025-08-03 21:43:48,740 - INFO - 缓存未命中,开始实时搜索: PsychicRitualDef_InvocationCircle +2025-08-03 21:43:50,020 - INFO - 找到 26 个候选文件,开始向量化处理... +2025-08-03 21:43:55,992 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 22:01:51,554 - INFO - Processing request of type CallToolRequest +2025-08-03 22:01:51,554 - INFO - 收到问题: Show the C# source code for the CompPsychicRitualSpot class, specifically the CompGetGizmosExtra method. I need to see how it creates the ritual selection gizmo and what it passes to the dialog window. +2025-08-03 22:01:51,554 - INFO - 找到的潜在关键词: [('Show', 2), ('CompPsychicRitualSpot', 2), ('CompGetGizmosExtra', 2)] +2025-08-03 22:01:51,554 - INFO - 提取到关键词: Show +2025-08-03 22:01:51,555 - INFO - 缓存未命中,开始实时搜索: Show +2025-08-03 22:01:52,936 - INFO - 找到 840 个候选文件,开始向量化处理... +2025-08-03 22:06:16,237 - WARNING - 未能从 C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\RitualTargetUseReport.txt 提取到完整的代码块。 +2025-08-03 22:06:16,237 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 22:13:55,178 - INFO - Processing request of type CallToolRequest +2025-08-03 22:13:55,178 - INFO - 收到问题: Show the C# source code for the PsychicRitualDef class and the Dialog_BeginPsychicRitual class. I need to see the correct properties for Icon, cooldowns, roles, and the exact constructor signature for the dialog. +2025-08-03 22:13:55,178 - INFO - 找到的潜在关键词: [('Dialog_BeginPsychicRitual', 3), ('Show', 2), ('PsychicRitualDef', 2), ('Icon', 2)] +2025-08-03 22:13:55,178 - INFO - 提取到关键词: Dialog_BeginPsychicRitual +2025-08-03 22:13:55,178 - INFO - 缓存未命中,开始实时搜索: Dialog_BeginPsychicRitual +2025-08-03 22:13:56,380 - INFO - 找到 8 个候选文件,开始向量化处理... +2025-08-03 22:13:58,927 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 22:30:34,550 - INFO - Processing request of type CallToolRequest +2025-08-03 22:30:34,550 - INFO - 收到问题: PsychicRitualDef_InvocationCircle class definition +2025-08-03 22:30:34,550 - INFO - 找到的潜在关键词: [('PsychicRitualDef_InvocationCircle', 3)] +2025-08-03 22:30:34,550 - INFO - 提取到关键词: PsychicRitualDef_InvocationCircle +2025-08-03 22:30:34,558 - INFO - 缓存命中: 关键词 'PsychicRitualDef_InvocationCircle' +2025-08-03 22:59:18,371 - INFO - Processing request of type CallToolRequest +2025-08-03 22:59:18,371 - INFO - 收到问题: CompPsychicRitualSpot CompGetGizmosExtra +2025-08-03 22:59:18,371 - INFO - 找到的潜在关键词: [('CompPsychicRitualSpot', 2), ('CompGetGizmosExtra', 2)] +2025-08-03 22:59:18,371 - INFO - 提取到关键词: CompPsychicRitualSpot +2025-08-03 22:59:18,371 - INFO - 缓存未命中,开始实时搜索: CompPsychicRitualSpot +2025-08-03 22:59:31,774 - INFO - 找到 4 个候选文件,开始向量化处理... +2025-08-03 22:59:33,291 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-03 22:59:51,745 - INFO - Processing request of type CallToolRequest +2025-08-03 22:59:51,745 - INFO - 收到问题: PsychicRitualGizmo GetGizmos +2025-08-03 22:59:51,745 - INFO - 找到的潜在关键词: [('PsychicRitualGizmo', 2), ('GetGizmos', 2)] +2025-08-03 22:59:51,745 - INFO - 提取到关键词: PsychicRitualGizmo +2025-08-03 22:59:51,758 - INFO - 缓存命中: 关键词 'PsychicRitualGizmo' +2025-08-03 23:28:19,476 - INFO - Processing request of type CallToolRequest +2025-08-03 23:28:19,476 - INFO - 收到问题: PsychicRitualDef LabelCap usage +2025-08-03 23:28:19,476 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2), ('LabelCap', 2)] +2025-08-03 23:28:19,476 - INFO - 提取到关键词: PsychicRitualDef +2025-08-03 23:28:19,486 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-03 23:36:54,188 - INFO - Processing request of type CallToolRequest +2025-08-03 23:36:54,189 - INFO - 收到问题: PsychicRitualDef reward +2025-08-03 23:36:54,189 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-03 23:36:54,189 - INFO - 提取到关键词: PsychicRitualDef +2025-08-03 23:36:54,189 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-03 23:43:11,852 - INFO - Processing request of type CallToolRequest +2025-08-03 23:43:11,852 - INFO - 收到问题: PsychicRitualDef create item +2025-08-03 23:43:11,852 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-03 23:43:11,852 - INFO - 提取到关键词: PsychicRitualDef +2025-08-03 23:43:11,852 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-03 23:54:25,993 - INFO - Processing request of type CallToolRequest +2025-08-03 23:54:25,993 - INFO - 收到问题: CompProperties_PsychicRitualSpot PsychicRitualGizmo +2025-08-03 23:54:25,994 - INFO - 找到的潜在关键词: [('CompProperties_PsychicRitualSpot', 3), ('PsychicRitualGizmo', 2)] +2025-08-03 23:54:25,994 - INFO - 提取到关键词: CompProperties_PsychicRitualSpot +2025-08-03 23:54:26,001 - INFO - 缓存命中: 关键词 'CompProperties_PsychicRitualSpot' +2025-08-03 23:54:38,820 - INFO - Processing request of type CallToolRequest +2025-08-03 23:54:38,820 - INFO - 收到问题: CompPsychicRitualSpot CompGetGizmosExtra +2025-08-03 23:54:38,820 - INFO - 找到的潜在关键词: [('CompPsychicRitualSpot', 2), ('CompGetGizmosExtra', 2)] +2025-08-03 23:54:38,820 - INFO - 提取到关键词: CompPsychicRitualSpot +2025-08-03 23:54:38,831 - INFO - 缓存命中: 关键词 'CompPsychicRitualSpot' +2025-08-03 23:55:28,827 - INFO - Processing request of type CallToolRequest +2025-08-03 23:55:28,828 - INFO - 收到问题: PsychicRitualGizmo GetGizmos +2025-08-03 23:55:28,828 - INFO - 找到的潜在关键词: [('PsychicRitualGizmo', 2), ('GetGizmos', 2)] +2025-08-03 23:55:28,828 - INFO - 提取到关键词: PsychicRitualGizmo +2025-08-03 23:55:28,840 - INFO - 缓存命中: 关键词 'PsychicRitualGizmo' +2025-08-03 23:57:23,467 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-03 23:57:23,479 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-03 23:57:23,492 - INFO - Processing request of type ListToolsRequest +2025-08-03 23:57:23,494 - INFO - Processing request of type ListResourcesRequest +2025-08-03 23:57:23,495 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-04 00:00:37,307 - INFO - Processing request of type CallToolRequest +2025-08-04 00:00:37,307 - INFO - 收到问题: PsychicRitualDef +2025-08-04 00:00:37,307 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-04 00:00:37,307 - INFO - 提取到关键词: PsychicRitualDef +2025-08-04 00:00:37,317 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 00:00:55,095 - INFO - Processing request of type CallToolRequest +2025-08-04 00:00:55,095 - INFO - 收到问题: class PsychicRitualDef +2025-08-04 00:00:55,095 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-04 00:00:55,095 - INFO - 提取到关键词: PsychicRitualDef +2025-08-04 00:00:55,095 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 00:09:55,831 - INFO - Processing request of type CallToolRequest +2025-08-04 00:09:55,831 - INFO - 收到问题: public class PsychicRitualDef : Def +2025-08-04 00:09:55,832 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-04 00:09:55,832 - INFO - 提取到关键词: PsychicRitualDef +2025-08-04 00:09:55,832 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 07:20:33,529 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-04 07:20:33,539 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-04 07:20:33,547 - INFO - Processing request of type ListToolsRequest +2025-08-04 07:20:33,549 - INFO - Processing request of type ListResourcesRequest +2025-08-04 07:20:33,551 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-04 07:20:33,559 - INFO - Processing request of type ListToolsRequest +2025-08-04 07:20:33,560 - INFO - Processing request of type ListToolsRequest +2025-08-04 07:20:35,996 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-04 07:20:36,004 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-04 07:20:36,011 - INFO - Processing request of type ListToolsRequest +2025-08-04 07:20:36,013 - INFO - Processing request of type ListResourcesRequest +2025-08-04 07:20:36,013 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-04 07:24:35,273 - INFO - Processing request of type CallToolRequest +2025-08-04 07:24:35,273 - INFO - 收到问题: public class PsychicRitualDef : Def +2025-08-04 07:24:35,273 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-04 07:24:35,273 - INFO - 提取到关键词: PsychicRitualDef +2025-08-04 07:24:35,282 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 07:26:21,038 - INFO - Processing request of type CallToolRequest +2025-08-04 07:26:21,038 - INFO - 收到问题: public class PsychicRitualDef : Def +2025-08-04 07:26:21,038 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-04 07:26:21,038 - INFO - 提取到关键词: PsychicRitualDef +2025-08-04 07:26:21,038 - INFO - 缓存未命中,开始实时搜索: PsychicRitualDef +2025-08-04 07:27:10,095 - INFO - 找到 57 个候选文件,开始向量化处理... +2025-08-04 07:27:28,833 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-04 07:28:17,494 - INFO - Processing request of type CallToolRequest +2025-08-04 07:28:17,494 - INFO - 收到问题: public class PsychicRitualDef : Def +2025-08-04 07:28:17,494 - INFO - 找到的潜在关键词: [('PsychicRitualDef', 2)] +2025-08-04 07:28:17,494 - INFO - 提取到关键词: PsychicRitualDef +2025-08-04 07:28:17,501 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 07:30:47,851 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-04 07:30:47,860 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-04 07:30:47,868 - INFO - Processing request of type ListToolsRequest +2025-08-04 07:30:47,869 - INFO - Processing request of type ListResourcesRequest +2025-08-04 07:30:47,870 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-04 07:31:58,371 - INFO - Processing request of type CallToolRequest +2025-08-04 07:31:58,372 - INFO - 收到问题: PsychicRitualDef +2025-08-04 07:31:58,372 - INFO - 找到的潜在关键词: ['PsychicRitualDef'] +2025-08-04 07:31:58,372 - INFO - 提取到关键词: ['PsychicRitualDef'] +2025-08-04 07:31:58,372 - INFO - 缓存未命中,开始实时搜索: PsychicRitualDef +2025-08-04 07:31:59,657 - INFO - 找到 57 个候选文件,开始向量化处理... +2025-08-04 07:31:59,658 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef.txt +2025-08-04 07:31:59,658 - WARNING - 候选文件过多 (56),仅处理前 25 个。 +2025-08-04 07:32:06,642 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-04 07:32:54,871 - INFO - Processing request of type CallToolRequest +2025-08-04 07:32:54,871 - INFO - 收到问题: public class PsychicRitualDef +2025-08-04 07:32:54,872 - INFO - 找到的潜在关键词: ['PsychicRitualDef'] +2025-08-04 07:32:54,872 - INFO - 提取到关键词: ['PsychicRitualDef'] +2025-08-04 07:32:54,878 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 07:35:55,326 - INFO - Processing request of type CallToolRequest +2025-08-04 07:35:55,326 - INFO - 收到问题: PsychicRitualToil_GatherForInvocation +2025-08-04 07:35:55,326 - INFO - 找到的潜在关键词: ['PsychicRitualToil_GatherForInvocation'] +2025-08-04 07:35:55,326 - INFO - 提取到关键词: ['PsychicRitualToil_GatherForInvocation'] +2025-08-04 07:35:55,327 - INFO - 缓存未命中,开始实时搜索: PsychicRitualToil_GatherForInvocation +2025-08-04 07:35:56,578 - INFO - 找到 4 个候选文件,开始向量化处理... +2025-08-04 07:35:56,578 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_GatherForInvocation.txt +2025-08-04 07:35:58,159 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-04 07:42:57,428 - INFO - Processing request of type CallToolRequest +2025-08-04 07:42:57,428 - INFO - 收到问题: PsychicRitualDef_InvocationCircle class +2025-08-04 07:42:57,428 - INFO - 找到的潜在关键词: ['PsychicRitualDef_InvocationCircle'] +2025-08-04 07:42:57,428 - INFO - 提取到关键词: ['PsychicRitualDef_InvocationCircle'] +2025-08-04 07:42:57,429 - INFO - 缓存未命中,开始实时搜索: PsychicRitualDef_InvocationCircle +2025-08-04 07:42:58,898 - INFO - 找到 26 个候选文件,开始向量化处理... +2025-08-04 07:42:58,898 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_InvocationCircle.txt +2025-08-04 07:43:06,851 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-04 07:43:37,198 - INFO - Processing request of type CallToolRequest +2025-08-04 07:43:37,198 - INFO - 收到问题: PsychicRitualDef class source +2025-08-04 07:43:37,198 - INFO - 找到的潜在关键词: ['PsychicRitualDef'] +2025-08-04 07:43:37,198 - INFO - 提取到关键词: ['PsychicRitualDef'] +2025-08-04 07:43:37,199 - INFO - 缓存命中: 关键词 'PsychicRitualDef' +2025-08-04 07:44:18,730 - INFO - Processing request of type CallToolRequest +2025-08-04 07:44:18,730 - INFO - 收到问题: PsychicRitualToil_GatherOfferings class source +2025-08-04 07:44:18,730 - INFO - 找到的潜在关键词: ['PsychicRitualToil_GatherOfferings'] +2025-08-04 07:44:18,730 - INFO - 提取到关键词: ['PsychicRitualToil_GatherOfferings'] +2025-08-04 07:44:18,730 - INFO - 缓存未命中,开始实时搜索: PsychicRitualToil_GatherOfferings +2025-08-04 07:44:20,107 - INFO - 找到 5 个候选文件,开始向量化处理... +2025-08-04 07:44:20,107 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_GatherOfferings.txt +2025-08-04 07:44:22,143 - INFO - 向量搜索完成。找到了 4 个匹配项并成功提取了代码。 +2025-08-04 07:53:02,419 - INFO - Processing request of type CallToolRequest +2025-08-04 07:53:02,419 - INFO - 收到问题: StatDef for melee attack speed +2025-08-04 07:53:02,419 - INFO - 找到的潜在关键词: ['StatDef'] +2025-08-04 07:53:02,419 - INFO - 提取到关键词: ['StatDef'] +2025-08-04 07:53:02,419 - INFO - 缓存未命中,开始实时搜索: StatDef +2025-08-04 07:53:03,865 - INFO - 找到 516 个候选文件,开始向量化处理... +2025-08-04 07:53:03,867 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\StatDef.txt +2025-08-04 07:53:03,868 - WARNING - 候选文件过多 (515),仅处理前 25 个。 +2025-08-04 07:53:12,872 - INFO - 向量搜索完成。找到了 2 个匹配项并成功提取了代码。 +2025-08-04 07:55:01,722 - INFO - Processing request of type CallToolRequest +2025-08-04 07:55:01,723 - INFO - 收到问题: AbilityDef for berserk pulse +2025-08-04 07:55:01,723 - INFO - 找到的潜在关键词: ['AbilityDef'] +2025-08-04 07:55:01,723 - INFO - 提取到关键词: ['AbilityDef'] +2025-08-04 07:55:01,723 - INFO - 缓存未命中,开始实时搜索: AbilityDef +2025-08-04 07:55:03,037 - INFO - 找到 104 个候选文件,开始向量化处理... +2025-08-04 07:55:03,037 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\AbilityDef.txt +2025-08-04 07:55:03,037 - WARNING - 候选文件过多 (103),仅处理前 25 个。 +2025-08-04 07:55:10,617 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-04 07:58:42,495 - INFO - Processing request of type CallToolRequest +2025-08-04 07:58:42,495 - INFO - 收到问题: 现在我需要找到原版“群体狂暴”灵能的 defName。 +2025-08-04 07:58:42,495 - INFO - 找到的潜在关键词: ['defName。'] +2025-08-04 07:58:42,495 - INFO - 提取到关键词: ['defName。'] +2025-08-04 07:58:42,495 - INFO - 缓存未命中,开始实时搜索: defName。 +2025-08-04 07:58:43,777 - INFO - 未找到与 '['defName。']' 相关的文件。 +2025-08-04 07:59:36,124 - INFO - Processing request of type CallToolRequest +2025-08-04 07:59:36,124 - INFO - 收到问题: 现在我需要找到原版“群体狂暴”灵能的 defName。 +2025-08-04 07:59:36,124 - INFO - 找到的潜在关键词: ['defName。'] +2025-08-04 07:59:36,124 - INFO - 提取到关键词: ['defName。'] +2025-08-04 07:59:36,124 - INFO - 缓存未命中,开始实时搜索: defName。 +2025-08-04 07:59:37,427 - INFO - 未找到与 '['defName。']' 相关的文件。 +2025-08-04 08:00:44,966 - INFO - Processing request of type CallToolRequest +2025-08-04 08:00:44,966 - INFO - 收到问题: 现在我需要找到原版“群体狂暴”灵能的 defName。 +2025-08-04 08:00:44,966 - INFO - 找到的潜在关键词: ['defName。'] +2025-08-04 08:00:44,967 - INFO - 提取到关键词: ['defName。'] +2025-08-04 08:00:44,967 - INFO - 缓存未命中,开始实时搜索: defName。 +2025-08-04 08:00:46,237 - INFO - 未找到与 '['defName。']' 相关的文件。 +2025-08-04 08:01:42,734 - INFO - Processing request of type CallToolRequest +2025-08-04 08:01:42,734 - INFO - 收到问题: 现在我需要找到原版“群体狂暴”灵能的 defName。 +2025-08-04 08:01:42,734 - INFO - 找到的潜在关键词: ['defName。'] +2025-08-04 08:01:42,734 - INFO - 提取到关键词: ['defName。'] +2025-08-04 08:01:42,734 - INFO - 缓存未命中,开始实时搜索: defName。 +2025-08-04 08:01:43,967 - INFO - 未找到与 '['defName。']' 相关的文件。 +2025-08-04 08:54:04,338 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-04 08:54:04,354 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-04 08:54:04,367 - INFO - Processing request of type ListToolsRequest +2025-08-04 08:54:04,369 - INFO - Processing request of type ListResourcesRequest +2025-08-04 08:54:04,370 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-04 21:57:57,767 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-04 21:57:57,782 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-04 21:57:57,795 - INFO - Processing request of type ListToolsRequest +2025-08-04 21:57:57,797 - INFO - Processing request of type ListResourcesRequest +2025-08-04 21:57:57,798 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-05 18:39:23,841 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-05 18:39:23,858 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-05 18:39:23,871 - INFO - Processing request of type ListToolsRequest +2025-08-05 18:39:23,873 - INFO - Processing request of type ListResourcesRequest +2025-08-05 18:39:23,874 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-05 18:47:28,304 - INFO - Processing request of type CallToolRequest +2025-08-05 18:47:28,306 - INFO - 收到问题: Pawn_InventoryTracker.get_FirstUnloadableThing +2025-08-05 18:47:28,306 - INFO - 找到的潜在关键词: ['get_FirstUnloadableThing', 'Pawn_InventoryTracker'] +2025-08-05 18:47:28,306 - INFO - 提取到关键词: ['get_FirstUnloadableThing', 'Pawn_InventoryTracker'] +2025-08-05 18:47:28,306 - INFO - 缓存未命中,开始实时搜索: Pawn_InventoryTracker-get_FirstUnloadableThing +2025-08-05 18:48:42,219 - INFO - 使用最具体的关键词 'get_FirstUnloadableThing' 未找到文件,尝试所有关键词... +2025-08-05 18:48:44,293 - INFO - 找到 20 个候选文件,开始向量化处理... +2025-08-05 18:48:44,293 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\Pawn_InventoryTracker.txt +2025-08-05 18:48:50,652 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-05 18:49:27,121 - INFO - Processing request of type CallToolRequest +2025-08-05 18:49:27,121 - INFO - 收到问题: Pawn_InventoryTracker.get_FirstUnloadableThing +2025-08-05 18:49:27,122 - INFO - 找到的潜在关键词: ['get_FirstUnloadableThing', 'Pawn_InventoryTracker'] +2025-08-05 18:49:27,122 - INFO - 提取到关键词: ['get_FirstUnloadableThing', 'Pawn_InventoryTracker'] +2025-08-05 18:49:27,131 - INFO - 缓存命中: 关键词 'Pawn_InventoryTracker-get_FirstUnloadableThing' +2025-08-05 19:04:16,910 - INFO - Processing request of type CallToolRequest +2025-08-05 19:04:16,910 - INFO - 收到问题: Verse.Projectile.TickInterval +2025-08-05 19:04:16,910 - INFO - 找到的潜在关键词: ['TickInterval', 'Projectile', 'Verse'] +2025-08-05 19:04:16,910 - INFO - 提取到关键词: ['TickInterval', 'Projectile', 'Verse'] +2025-08-05 19:04:16,910 - INFO - 缓存未命中,开始实时搜索: Projectile-TickInterval-Verse +2025-08-05 19:04:18,552 - INFO - 找到 289 个候选文件,开始向量化处理... +2025-08-05 19:04:18,553 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\Projectile.txt +2025-08-05 19:04:18,554 - WARNING - 候选文件过多 (288),仅处理前 25 个。 +2025-08-05 19:04:28,272 - ERROR - HTTPSConnectionPool(host='dashscope.aliyuncs.com', port=443): Max retries exceeded with url: /api/v1/services/embeddings/text-embedding/text-embedding (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)'))) +2025-08-05 19:04:28,272 - ERROR - 调用向量API时出错: HTTPSConnectionPool(host='dashscope.aliyuncs.com', port=443): Max retries exceeded with url: /api/v1/services/embeddings/text-embedding/text-embedding (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)'))) +urllib3.exceptions.SSLError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000) + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\adapters.py", line 667, in send + resp = conn.urlopen( + ^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 841, in urlopen + retries = retries.increment( + ^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\util\retry.py", line 519, in increment + raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='dashscope.aliyuncs.com', port=443): Max retries exceeded with url: /api/v1/services/embeddings/text-embedding/text-embedding (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)'))) + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "c:\Steam\steamapps\common\RimWorld\Mods\3516260226\Source\MCP\mcpserver_stdio.py", line 82, in get_embedding + response = dashscope.TextEmbedding.call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\dashscope\embeddings\text_embedding.py", line 49, in call + return super().call(model=model, + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\dashscope\client\base_api.py", line 148, in call + return request.call() + ^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\dashscope\api_entities\http_request.py", line 101, in call + output = next(response) + ^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\dashscope\api_entities\http_request.py", line 330, in _handle_request + raise e + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\dashscope\api_entities\http_request.py", line 313, in _handle_request + response = session.post(url=self.url, + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 637, in post + return self.request("POST", url, data=data, json=json, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 589, in request + resp = self.send(prep, **send_kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 703, in send + r = adapter.send(request, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\Kalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\adapters.py", line 698, in send + raise SSLError(e, request=request) +requests.exceptions.SSLError: HTTPSConnectionPool(host='dashscope.aliyuncs.com', port=443): Max retries exceeded with url: /api/v1/services/embeddings/text-embedding/text-embedding (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1000)'))) +2025-08-05 19:04:32,638 - INFO - 向量搜索完成。找到了 2 个匹配项并成功提取了代码。 +2025-08-06 19:25:05,631 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-06 19:25:05,642 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-06 19:25:05,651 - INFO - Processing request of type ListToolsRequest +2025-08-06 19:25:05,653 - INFO - Processing request of type ListResourcesRequest +2025-08-06 19:25:05,653 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-06 20:19:21,633 - INFO - Processing request of type CallToolRequest +2025-08-06 20:19:21,638 - INFO - 收到问题: How does RimWorld handle delayed actions or events over a specific number of ticks? I'm looking for schedulers or managers. +2025-08-06 20:19:21,640 - INFO - 找到的潜在关键词: ['RimWorld'] +2025-08-06 20:19:21,640 - INFO - 提取到关键词: ['RimWorld'] +2025-08-06 20:19:21,640 - INFO - 缓存未命中,开始实时搜索: RimWorld +2025-08-06 20:19:23,841 - INFO - 找到 8024 个候选文件,开始向量化处理... +2025-08-06 20:19:23,869 - WARNING - 候选文件过多 (8024),仅处理前 25 个。 +2025-08-08 17:22:58,354 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-08 17:22:58,366 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-08 17:22:58,377 - INFO - Processing request of type ListToolsRequest +2025-08-08 17:22:58,378 - INFO - Processing request of type ListResourcesRequest +2025-08-08 17:22:58,379 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-08 17:41:24,024 - INFO - Processing request of type CallToolRequest +2025-08-08 17:41:24,025 - INFO - 收到问题: Building_Bed +2025-08-08 17:41:24,026 - INFO - 找到的潜在关键词: ['Building_Bed'] +2025-08-08 17:41:24,026 - INFO - 提取到关键词: ['Building_Bed'] +2025-08-08 17:41:24,026 - INFO - 缓存未命中,开始实时搜索: Building_Bed +2025-08-08 17:42:44,193 - INFO - 找到 103 个候选文件,开始向量化处理... +2025-08-08 17:42:44,193 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\Building_Bed.txt +2025-08-08 17:42:44,197 - WARNING - 候选文件过多 (102),仅处理前 25 个。 +2025-08-08 17:42:51,398 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-08 17:42:51,404 - INFO - Processing request of type CallToolRequest +2025-08-08 17:42:51,404 - INFO - 收到问题: CryptosleepCasket +2025-08-08 17:42:51,404 - INFO - 找到的潜在关键词: ['CryptosleepCasket'] +2025-08-08 17:42:51,404 - INFO - 提取到关键词: ['CryptosleepCasket'] +2025-08-08 17:42:51,404 - INFO - 缓存未命中,开始实时搜索: CryptosleepCasket +2025-08-08 17:42:53,357 - INFO - 找到 56 个候选文件,开始向量化处理... +2025-08-08 17:42:53,359 - WARNING - 候选文件过多 (56),仅处理前 25 个。 +2025-08-08 17:43:01,261 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-08 17:46:37,047 - INFO - Processing request of type CallToolRequest +2025-08-08 17:46:37,047 - INFO - 收到问题: BiosculpterPod +2025-08-08 17:46:37,047 - INFO - 找到的潜在关键词: ['BiosculpterPod'] +2025-08-08 17:46:37,048 - INFO - 提取到关键词: ['BiosculpterPod'] +2025-08-08 17:46:37,048 - INFO - 缓存未命中,开始实时搜索: BiosculpterPod +2025-08-08 17:46:39,286 - INFO - 找到 42 个候选文件,开始向量化处理... +2025-08-08 17:46:39,286 - WARNING - 候选文件过多 (42),仅处理前 25 个。 +2025-08-08 17:46:46,223 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-08 17:47:06,637 - INFO - Processing request of type CallToolRequest +2025-08-08 17:47:06,637 - INFO - 收到问题: Building_BiosculpterPod class +2025-08-08 17:47:06,637 - INFO - 找到的潜在关键词: ['Building_BiosculpterPod'] +2025-08-08 17:47:06,637 - INFO - 提取到关键词: ['Building_BiosculpterPod'] +2025-08-08 17:47:06,638 - INFO - 缓存未命中,开始实时搜索: Building_BiosculpterPod +2025-08-08 17:47:08,918 - INFO - 未找到与 '['Building_BiosculpterPod']' 相关的文件。 +2025-08-08 17:56:16,922 - INFO - Processing request of type CallToolRequest +2025-08-08 17:56:16,922 - INFO - 收到问题: ThingDef of BiosculpterPod +2025-08-08 17:56:16,922 - INFO - 找到的潜在关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-08 17:56:16,922 - INFO - 提取到关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-08 17:56:16,922 - INFO - 缓存未命中,开始实时搜索: BiosculpterPod-ThingDef +2025-08-08 17:56:18,882 - INFO - 找到 50 个候选文件,开始向量化处理... +2025-08-08 17:56:18,882 - WARNING - 候选文件过多 (50),仅处理前 25 个。 +2025-08-08 17:56:25,938 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-08 18:50:39,345 - INFO - Processing request of type CallToolRequest +2025-08-08 18:50:39,347 - INFO - 收到问题: Building_BiosculpterPod class definition +2025-08-08 18:50:39,348 - INFO - 找到的潜在关键词: ['Building_BiosculpterPod'] +2025-08-08 18:50:39,348 - INFO - 提取到关键词: ['Building_BiosculpterPod'] +2025-08-08 18:50:39,348 - INFO - 缓存未命中,开始实时搜索: Building_BiosculpterPod +2025-08-08 18:52:17,079 - INFO - 未找到与 '['Building_BiosculpterPod']' 相关的文件。 +2025-08-08 18:53:58,078 - INFO - Processing request of type CallToolRequest +2025-08-08 18:53:58,078 - INFO - 收到问题: Building_BiosculpterPod class definition +2025-08-08 18:53:58,078 - INFO - 找到的潜在关键词: ['Building_BiosculpterPod'] +2025-08-08 18:53:58,078 - INFO - 提取到关键词: ['Building_BiosculpterPod'] +2025-08-08 18:53:58,078 - INFO - 缓存未命中,开始实时搜索: Building_BiosculpterPod +2025-08-08 18:54:00,558 - INFO - 未找到与 '['Building_BiosculpterPod']' 相关的文件。 +2025-08-08 19:07:28,003 - INFO - Processing request of type CallToolRequest +2025-08-08 19:07:28,003 - INFO - 收到问题: CompBiosculpterPod and CompProperties_BiosculpterPod +2025-08-08 19:07:28,003 - INFO - 找到的潜在关键词: ['CompProperties_BiosculpterPod', 'CompBiosculpterPod'] +2025-08-08 19:07:28,003 - INFO - 提取到关键词: ['CompProperties_BiosculpterPod', 'CompBiosculpterPod'] +2025-08-08 19:07:28,004 - INFO - 缓存未命中,开始实时搜索: CompBiosculpterPod-CompProperties_BiosculpterPod +2025-08-08 19:07:29,829 - INFO - 找到 11 个候选文件,开始向量化处理... +2025-08-08 19:07:29,829 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod.txt +2025-08-08 19:07:29,829 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompBiosculpterPod.txt +2025-08-08 19:07:31,777 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-08 19:35:05,891 - INFO - Processing request of type CallToolRequest +2025-08-08 19:35:05,891 - INFO - 收到问题: C# class JobDef fields +2025-08-08 19:35:05,891 - INFO - 找到的潜在关键词: ['JobDef'] +2025-08-08 19:35:05,891 - INFO - 提取到关键词: ['JobDef'] +2025-08-08 19:35:05,891 - INFO - 缓存未命中,开始实时搜索: JobDef +2025-08-08 19:35:08,071 - INFO - 找到 571 个候选文件,开始向量化处理... +2025-08-08 19:35:08,072 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\JobDef.txt +2025-08-08 19:35:08,073 - WARNING - 候选文件过多 (570),仅处理前 25 个。 +2025-08-08 19:35:13,917 - INFO - 向量搜索完成。找到了 2 个匹配项并成功提取了代码。 +2025-08-08 23:59:20,246 - INFO - Processing request of type CallToolRequest +2025-08-08 23:59:20,269 - INFO - 收到问题: ThingDef for BiosculpterPod +2025-08-08 23:59:20,270 - INFO - 找到的潜在关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-08 23:59:20,270 - INFO - 提取到关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-08 23:59:20,302 - INFO - 缓存命中: 关键词 'BiosculpterPod-ThingDef' +2025-08-09 00:32:44,309 - INFO - Processing request of type CallToolRequest +2025-08-09 00:32:44,309 - INFO - 收到问题: JobDriver_EnterCryptosleepCasket +2025-08-09 00:32:44,310 - INFO - 找到的潜在关键词: ['JobDriver_EnterCryptosleepCasket'] +2025-08-09 00:32:44,310 - INFO - 提取到关键词: ['JobDriver_EnterCryptosleepCasket'] +2025-08-09 00:32:44,310 - INFO - 缓存未命中,开始实时搜索: JobDriver_EnterCryptosleepCasket +2025-08-09 00:33:57,816 - INFO - 找到 2 个候选文件,开始向量化处理... +2025-08-09 00:33:57,816 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_EnterCryptosleepCasket.txt +2025-08-09 00:33:58,572 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 +2025-08-09 00:42:26,054 - INFO - Processing request of type CallToolRequest +2025-08-09 00:42:26,054 - INFO - 收到问题: ThingDef for BiosculpterPod +2025-08-09 00:42:26,054 - INFO - 找到的潜在关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-09 00:42:26,054 - INFO - 提取到关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-09 00:42:26,069 - INFO - 缓存命中: 关键词 'BiosculpterPod-ThingDef' +2025-08-09 10:18:42,504 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-09 10:18:42,520 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-09 10:18:42,533 - INFO - Processing request of type ListToolsRequest +2025-08-09 10:18:42,536 - INFO - Processing request of type ListResourcesRequest +2025-08-09 10:18:42,537 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-09 11:08:17,356 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-09 11:08:17,366 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-09 11:08:17,375 - INFO - Processing request of type ListToolsRequest +2025-08-09 11:08:17,377 - INFO - Processing request of type ListResourcesRequest +2025-08-09 11:08:17,378 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-09 13:01:19,595 - INFO - Processing request of type CallToolRequest +2025-08-09 13:01:19,600 - INFO - 收到问题: HediffDef named Malnutrition +2025-08-09 13:01:19,603 - INFO - 找到的潜在关键词: ['HediffDef', 'Malnutrition'] +2025-08-09 13:01:19,603 - INFO - 提取到关键词: ['HediffDef', 'Malnutrition'] +2025-08-09 13:01:19,604 - INFO - 缓存未命中,开始实时搜索: HediffDef-Malnutrition +2025-08-09 13:01:21,133 - INFO - 找到 20 个候选文件,开始向量化处理... +2025-08-09 13:01:28,002 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-09 13:02:58,802 - INFO - Processing request of type CallToolRequest +2025-08-09 13:02:58,803 - INFO - 收到问题: HediffDef named Luciferium +2025-08-09 13:02:58,803 - INFO - 找到的潜在关键词: ['HediffDef', 'Luciferium'] +2025-08-09 13:02:58,803 - INFO - 提取到关键词: ['HediffDef', 'Luciferium'] +2025-08-09 13:02:58,803 - INFO - 缓存未命中,开始实时搜索: HediffDef-Luciferium +2025-08-09 13:03:00,318 - INFO - 找到 29 个候选文件,开始向量化处理... +2025-08-09 13:03:00,318 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\Core\Languages\ChineseSimplified (简体中文)\DefInjected\NeedDef\Luciferium.xml +2025-08-09 13:03:00,318 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\Drugs\Luciferium.xml +2025-08-09 13:03:00,318 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\Core\Languages\ChineseSimplified (简体中文)\DefInjected\ChemicalDef\Luciferium.xml +2025-08-09 13:03:00,318 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\Core\Languages\ChineseSimplified (简体中文)\DefInjected\ThingDef\Luciferium.xml +2025-08-09 13:03:00,318 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\Core\Languages\ChineseSimplified (简体中文)\DefInjected\HediffDef\Luciferium.xml +2025-08-09 13:03:12,903 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 +2025-08-09 13:33:10,729 - INFO - Processing request of type CallToolRequest +2025-08-09 13:33:10,729 - INFO - 收到问题: ThingDef for Wula race +2025-08-09 13:33:10,729 - INFO - 找到的潜在关键词: ['Wula', 'ThingDef'] +2025-08-09 13:33:10,729 - INFO - 提取到关键词: ['Wula', 'ThingDef'] +2025-08-09 13:33:10,729 - INFO - 缓存未命中,开始实时搜索: ThingDef-Wula +2025-08-09 13:33:12,622 - INFO - 找到 2044 个候选文件,开始向量化处理... +2025-08-09 13:33:12,628 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\ThingDef.txt +2025-08-09 13:33:12,629 - WARNING - 候选文件过多 (2043),仅处理前 25 个。 +2025-08-09 13:34:54,603 - INFO - Processing request of type CallToolRequest +2025-08-09 13:34:54,603 - INFO - 收到问题: LifeStageDef for HumanlikeAdult +2025-08-09 13:34:54,603 - INFO - 找到的潜在关键词: ['LifeStageDef', 'HumanlikeAdult'] +2025-08-09 13:34:54,603 - INFO - 提取到关键词: ['LifeStageDef', 'HumanlikeAdult'] +2025-08-09 13:34:54,603 - INFO - 缓存未命中,开始实时搜索: HumanlikeAdult-LifeStageDef +2025-08-09 13:34:56,048 - INFO - 找到 6 个候选文件,开始向量化处理... +2025-08-09 13:34:58,422 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-09 13:35:56,165 - INFO - Processing request of type CallToolRequest +2025-08-09 13:35:56,165 - INFO - 收到问题: source code for ColonistBarColonistDrawer.DrawIcons +2025-08-09 13:35:56,165 - INFO - 找到的潜在关键词: ['DrawIcons', 'ColonistBarColonistDrawer'] +2025-08-09 13:35:56,165 - INFO - 提取到关键词: ['DrawIcons', 'ColonistBarColonistDrawer'] +2025-08-09 13:35:56,165 - INFO - 缓存未命中,开始实时搜索: ColonistBarColonistDrawer-DrawIcons +2025-08-09 13:35:57,819 - INFO - 找到 2 个候选文件,开始向量化处理... +2025-08-09 13:35:57,820 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\ColonistBarColonistDrawer.txt +2025-08-09 13:35:58,503 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 +2025-08-09 19:13:46,499 - INFO - Processing request of type CallToolRequest +2025-08-09 19:13:46,501 - INFO - 收到问题: PawnKindDef lifeStages +2025-08-09 19:13:46,502 - INFO - 找到的潜在关键词: ['PawnKindDef', 'lifeStages'] +2025-08-09 19:13:46,502 - INFO - 提取到关键词: ['PawnKindDef', 'lifeStages'] +2025-08-09 19:13:46,502 - INFO - 缓存未命中,开始实时搜索: PawnKindDef-lifeStages +2025-08-09 19:14:57,492 - INFO - 找到 314 个候选文件,开始向量化处理... +2025-08-09 19:14:57,492 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\PawnKindDef.txt +2025-08-09 19:14:57,493 - WARNING - 候选文件过多 (313),仅处理前 25 个。 +2025-08-09 19:15:07,385 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 +2025-08-09 19:15:07,406 - INFO - Processing request of type CallToolRequest +2025-08-09 19:15:07,407 - INFO - 收到问题: PawnKindDef lifeStages +2025-08-09 19:15:07,407 - INFO - 找到的潜在关键词: ['PawnKindDef', 'lifeStages'] +2025-08-09 19:15:07,407 - INFO - 提取到关键词: ['PawnKindDef', 'lifeStages'] +2025-08-09 19:15:07,415 - INFO - 缓存命中: 关键词 'PawnKindDef-lifeStages' +2025-08-09 19:22:06,405 - INFO - Processing request of type CallToolRequest +2025-08-09 19:22:06,405 - INFO - 收到问题: CompProperties_Refuelable +2025-08-09 19:22:06,405 - INFO - 找到的潜在关键词: ['CompProperties_Refuelable'] +2025-08-09 19:22:06,405 - INFO - 提取到关键词: ['CompProperties_Refuelable'] +2025-08-09 19:22:06,405 - INFO - 缓存未命中,开始实时搜索: CompProperties_Refuelable +2025-08-09 19:22:08,376 - INFO - 找到 18 个候选文件,开始向量化处理... +2025-08-09 19:22:08,376 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_Refuelable.txt +2025-08-09 19:22:17,721 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-09 19:24:09,129 - INFO - Processing request of type CallToolRequest +2025-08-09 19:24:09,129 - INFO - 收到问题: CompProperties_Refuelable +2025-08-09 19:24:09,129 - INFO - 找到的潜在关键词: ['CompProperties_Refuelable'] +2025-08-09 19:24:09,129 - INFO - 提取到关键词: ['CompProperties_Refuelable'] +2025-08-09 19:24:09,148 - INFO - 缓存命中: 关键词 'CompProperties_Refuelable' +2025-08-09 20:37:05,246 - INFO - Processing request of type CallToolRequest +2025-08-09 20:37:05,247 - INFO - 收到问题: WorkGiver_Scanner class definition, especially methods for float menu options +2025-08-09 20:37:05,248 - INFO - 找到的潜在关键词: ['WorkGiver_Scanner'] +2025-08-09 20:37:05,248 - INFO - 提取到关键词: ['WorkGiver_Scanner'] +2025-08-09 20:37:05,248 - INFO - 缓存未命中,开始实时搜索: WorkGiver_Scanner +2025-08-09 20:37:15,713 - INFO - 找到 83 个候选文件,开始向量化处理... +2025-08-09 20:37:15,714 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_Scanner.txt +2025-08-09 20:37:15,714 - WARNING - 候选文件过多 (82),仅处理前 25 个。 +2025-08-09 20:37:21,549 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-09 21:04:45,693 - INFO - Processing request of type CallToolRequest +2025-08-09 21:04:45,712 - INFO - 收到问题: TargetingParameters.ForRescue +2025-08-09 21:04:45,712 - INFO - 找到的潜在关键词: ['TargetingParameters', 'ForRescue'] +2025-08-09 21:04:45,712 - INFO - 提取到关键词: ['TargetingParameters', 'ForRescue'] +2025-08-09 21:04:45,746 - INFO - 缓存未命中,开始实时搜索: ForRescue-TargetingParameters +2025-08-09 21:05:06,716 - INFO - 找到 55 个候选文件,开始向量化处理... +2025-08-09 21:05:06,717 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\TargetingParameters.txt +2025-08-09 21:05:06,732 - WARNING - 候选文件过多 (54),仅处理前 25 个。 +2025-08-09 21:05:34,758 - INFO - Processing request of type CallToolRequest +2025-08-09 21:05:34,758 - INFO - 收到问题: FloatMenuMakerMap AddHumanlikeOrders +2025-08-09 21:05:34,758 - INFO - 找到的潜在关键词: ['AddHumanlikeOrders', 'FloatMenuMakerMap'] +2025-08-09 21:05:34,758 - INFO - 提取到关键词: ['AddHumanlikeOrders', 'FloatMenuMakerMap'] +2025-08-09 21:05:34,758 - INFO - 缓存未命中,开始实时搜索: AddHumanlikeOrders-FloatMenuMakerMap +2025-08-09 21:05:36,675 - INFO - 使用最具体的关键词 'AddHumanlikeOrders' 未找到文件,尝试所有关键词... +2025-08-09 21:05:38,735 - INFO - 找到 9 个候选文件,开始向量化处理... +2025-08-09 21:05:38,735 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\FloatMenuMakerMap.txt +2025-08-09 21:05:41,806 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-09 22:01:45,270 - INFO - 成功加载 DASHSCOPE_API_KEY。 +2025-08-09 22:01:45,281 - INFO - RimWorld 向量知识库 (FastMCP版, v2.1-v4-model) 正在启动... +2025-08-09 22:01:45,293 - INFO - Processing request of type ListToolsRequest +2025-08-09 22:01:45,294 - INFO - Processing request of type ListResourcesRequest +2025-08-09 22:01:45,295 - INFO - Processing request of type ListResourceTemplatesRequest +2025-08-09 22:36:40,663 - INFO - Processing request of type CallToolRequest +2025-08-09 22:36:40,664 - INFO - 收到问题: Source code for the Toil Toils_Haul.StartCarryThing +2025-08-09 22:36:40,664 - INFO - 找到的潜在关键词: ['Source', 'Toils_Haul', 'StartCarryThing', 'Toil'] +2025-08-09 22:36:40,664 - INFO - 提取到关键词: ['Source', 'Toils_Haul', 'StartCarryThing', 'Toil'] +2025-08-09 22:36:40,664 - INFO - 缓存未命中,开始实时搜索: Source-StartCarryThing-Toil-Toils_Haul +2025-08-09 22:36:42,122 - INFO - 找到 58 个候选文件,开始向量化处理... +2025-08-09 22:36:42,122 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\Toils_Haul.txt +2025-08-09 22:36:42,123 - WARNING - 候选文件过多 (57),仅处理前 25 个。 +2025-08-09 22:36:49,931 - INFO - 向量搜索完成。找到了 5 个匹配项并成功提取了代码。 +2025-08-09 22:37:26,949 - INFO - Processing request of type CallToolRequest +2025-08-09 22:37:26,950 - INFO - 收到问题: ThingDef for the Human race +2025-08-09 22:37:26,950 - INFO - 找到的潜在关键词: ['Human', 'ThingDef'] +2025-08-09 22:37:26,950 - INFO - 提取到关键词: ['Human', 'ThingDef'] +2025-08-09 22:37:26,950 - INFO - 缓存未命中,开始实时搜索: Human-ThingDef +2025-08-09 22:37:28,442 - INFO - 找到 2044 个候选文件,开始向量化处理... +2025-08-09 22:37:28,444 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\ThingDef.txt +2025-08-09 22:37:28,449 - WARNING - 候选文件过多 (2043),仅处理前 25 个。 +2025-08-09 22:37:37,558 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-09 22:51:16,961 - INFO - Processing request of type CallToolRequest +2025-08-09 22:51:16,961 - INFO - 收到问题: WorkGiver_HaulToMaintenancePod +2025-08-09 22:51:16,961 - INFO - 找到的潜在关键词: ['WorkGiver_HaulToMaintenancePod'] +2025-08-09 22:51:16,961 - INFO - 提取到关键词: ['WorkGiver_HaulToMaintenancePod'] +2025-08-09 22:51:16,961 - INFO - 缓存未命中,开始实时搜索: WorkGiver_HaulToMaintenancePod +2025-08-09 22:51:18,339 - INFO - 未找到与 '['WorkGiver_HaulToMaintenancePod']' 相关的文件。 +2025-08-09 23:24:17,104 - INFO - Processing request of type CallToolRequest +2025-08-09 23:24:17,104 - INFO - 收到问题: WorkGiver_HaulToBiosculpterPod, CompBiosculpterPod +2025-08-09 23:24:17,104 - INFO - 找到的潜在关键词: ['WorkGiver_HaulToBiosculpterPod', 'CompBiosculpterPod'] +2025-08-09 23:24:17,104 - INFO - 提取到关键词: ['WorkGiver_HaulToBiosculpterPod', 'CompBiosculpterPod'] +2025-08-09 23:24:17,104 - INFO - 缓存未命中,开始实时搜索: CompBiosculpterPod-WorkGiver_HaulToBiosculpterPod +2025-08-09 23:24:18,974 - INFO - 找到 2 个候选文件,开始向量化处理... +2025-08-09 23:24:18,974 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_HaulToBiosculpterPod.txt +2025-08-09 23:24:19,422 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 +2025-08-09 23:30:21,294 - INFO - Processing request of type CallToolRequest +2025-08-09 23:30:21,294 - INFO - 收到问题: JobDefOf.Rescue, JobDriver_TakeToBed +2025-08-09 23:30:21,294 - INFO - 找到的潜在关键词: ['JobDriver_TakeToBed', 'Rescue', 'JobDefOf'] +2025-08-09 23:30:21,294 - INFO - 提取到关键词: ['JobDriver_TakeToBed', 'Rescue', 'JobDefOf'] +2025-08-09 23:30:21,294 - INFO - 缓存未命中,开始实时搜索: JobDefOf-JobDriver_TakeToBed-Rescue +2025-08-09 23:30:22,675 - INFO - 找到 4 个候选文件,开始向量化处理... +2025-08-09 23:30:22,675 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_TakeToBed.txt +2025-08-09 23:30:24,295 - INFO - 向量搜索完成。找到了 3 个匹配项并成功提取了代码。 +2025-08-09 23:31:46,828 - INFO - Processing request of type CallToolRequest +2025-08-09 23:31:46,828 - INFO - 收到问题: ThingDef of BiosculpterPod +2025-08-09 23:31:46,828 - INFO - 找到的潜在关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-09 23:31:46,829 - INFO - 提取到关键词: ['BiosculpterPod', 'ThingDef'] +2025-08-09 23:31:46,845 - INFO - 缓存命中: 关键词 'BiosculpterPod-ThingDef' +2025-08-09 23:32:57,437 - INFO - Processing request of type CallToolRequest +2025-08-09 23:32:57,437 - INFO - 收到问题: JobDefOf.CarryToBiosculpterPod, JobDriver_CarryToBiosculpterPod +2025-08-09 23:32:57,437 - INFO - 找到的潜在关键词: ['JobDriver_CarryToBiosculpterPod', 'JobDefOf', 'CarryToBiosculpterPod'] +2025-08-09 23:32:57,437 - INFO - 提取到关键词: ['JobDriver_CarryToBiosculpterPod', 'JobDefOf', 'CarryToBiosculpterPod'] +2025-08-09 23:32:57,437 - INFO - 缓存未命中,开始实时搜索: CarryToBiosculpterPod-JobDefOf-JobDriver_CarryToBiosculpterPod +2025-08-09 23:32:58,909 - INFO - 找到 3 个候选文件,开始向量化处理... +2025-08-09 23:32:58,910 - INFO - 文件名精确匹配: C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_CarryToBiosculpterPod.txt +2025-08-09 23:32:59,792 - INFO - 向量搜索完成。找到了 1 个匹配项并成功提取了代码。 diff --git a/Source/MCP/mcpserver_stdio.py b/MCP/mcpserver_stdio.py similarity index 100% rename from Source/MCP/mcpserver_stdio.py rename to MCP/mcpserver_stdio.py diff --git a/MCP/pid.txt b/MCP/pid.txt new file mode 100644 index 00000000..32b2ab6a --- /dev/null +++ b/MCP/pid.txt @@ -0,0 +1 @@ +86696 \ No newline at end of file diff --git a/MCP/vector_cache/AbilityDef.txt b/MCP/vector_cache/AbilityDef.txt new file mode 100644 index 00000000..08b7ce71 --- /dev/null +++ b/MCP/vector_cache/AbilityDef.txt @@ -0,0 +1,621 @@ +根据向量相似度分析,与 'AbilityDef' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\AbilityDef.txt` + +```csharp +public class AbilityDef : Def +{ + public Type abilityClass = typeof(Ability); + + public Type gizmoClass = typeof(Command_Ability); + + public List comps = new List(); + + public AbilityCategoryDef category; + + public int displayOrder; + + public List statBases; + + public VerbProperties verbProperties; + + public KeyBindingDef hotKey; + + public JobDef jobDef; + + public ThingDef warmupMote; + + public EffecterDef warmupEffecter; + + public FleckDef emittedFleck; + + public int emissionInterval; + + public string warmupMoteSocialSymbol; + + public SoundDef warmupStartSound; + + public SoundDef warmupSound; + + public SoundDef warmupPreEndSound; + + public float warmupPreEndSoundSeconds; + + public Vector3 moteDrawOffset; + + public float moteOffsetAmountTowardsTarget; + + public bool canUseAoeToGetTargets = true; + + public bool useAverageTargetPositionForWarmupEffecter; + + public bool targetRequired = true; + + public bool targetWorldCell; + + public bool showGizmoOnWorldView; + + public bool aiCanUse; + + public bool ai_SearchAOEForTargets; + + public bool ai_IsOffensive = true; + + public bool ai_IsIncendiary = true; + + public bool groupAbility; + + public int level; + + public IntRange cooldownTicksRange; + + public bool cooldownPerCharge; + + public bool hasExternallyHandledCooldown; + + public int charges = -1; + + public AbilityGroupDef groupDef; + + public bool overrideGroupCooldown; + + public List requiredMemes; + + public bool sendLetterOnCooldownComplete; + + public bool sendMessageOnCooldownComplete; + + public bool displayGizmoWhileUndrafted; + + public bool disableGizmoWhileUndrafted = true; + + public bool writeCombatLog; + + public bool stunTargetWhileCasting; + + public bool showPsycastEffects = true; + + public bool showCastingProgressBar; + + public float detectionChanceOverride = -1f; + + public float uiOrder; + + public bool waitForJobEnd; + + public bool showWhenDrafted = true; + + public bool showOnCharacterCard = true; + + public bool hostile = true; + + public bool casterMustBeCapableOfViolence = true; + + [MustTranslate] + public string confirmationDialogText; + + [NoTranslate] + public string iconPath; + + public Texture2D uiIcon = BaseContent.BadTex; + + private string cachedTooltip; + + private Pawn cachedTooltipPawn; + + private List cachedTargets; + + private int requiredPsyfocusBandCached = -1; + + private bool? anyCompOverridesPsyfocusCost; + + private FloatRange psyfocusCostRange = new FloatRange(-1f, -1f); + + private string psyfocusCostPercent; + + private string psyfocusCostPercentMax; + + private Texture2D warmupMoteSocialSymbolCached; + + public float EntropyGain => statBases.GetStatValueFromList(StatDefOf.Ability_EntropyGain, 0f); + + public float PsyfocusCost => statBases.GetStatValueFromList(StatDefOf.Ability_PsyfocusCost, 0f); + + public float EffectRadius => statBases.GetStatValueFromList(StatDefOf.Ability_EffectRadius, 0f); + + public bool HasAreaOfEffect => EffectRadius > float.Epsilon; + + public float DetectionChance + { + get + { + if (!(detectionChanceOverride >= 0f)) + { + return this.GetStatValueAbstract(StatDefOf.Ability_DetectChancePerEntropy); + } + return detectionChanceOverride; + } + } + + public bool IsPsycast => typeof(Psycast).IsAssignableFrom(abilityClass); + + public string PsyfocusCostPercent + { + get + { + if (psyfocusCostPercent.NullOrEmpty()) + { + psyfocusCostPercent = PsyfocusCost.ToStringPercent(); + } + return psyfocusCostPercent; + } + } + + public string PsyfocusCostPercentMax + { + get + { + if (psyfocusCostPercentMax.NullOrEmpty()) + { + psyfocusCostPercentMax = PsyfocusCostRange.max.ToStringPercent(); + } + return psyfocusCostPercentMax; + } + } + + public int RequiredPsyfocusBand + { + get + { + if (requiredPsyfocusBandCached == -1) + { + requiredPsyfocusBandCached = Pawn_PsychicEntropyTracker.MaxAbilityLevelPerPsyfocusBand.Count - 1; + for (int i = 0; i < Pawn_PsychicEntropyTracker.MaxAbilityLevelPerPsyfocusBand.Count; i++) + { + int num = Pawn_PsychicEntropyTracker.MaxAbilityLevelPerPsyfocusBand[i]; + if (level <= num) + { + requiredPsyfocusBandCached = i; + break; + } + } + } + return requiredPsyfocusBandCached; + } + } + + public bool AnyCompOverridesPsyfocusCost + { + get + { + if (!anyCompOverridesPsyfocusCost.HasValue) + { + anyCompOverridesPsyfocusCost = false; + if (comps != null) + { + foreach (AbilityCompProperties comp in comps) + { + if (comp.OverridesPsyfocusCost) + { + anyCompOverridesPsyfocusCost = true; + break; + } + } + } + } + return anyCompOverridesPsyfocusCost.Value; + } + } + + public FloatRange PsyfocusCostRange + { + get + { + if (psyfocusCostRange.min < 0f) + { + if (!AnyCompOverridesPsyfocusCost) + { + psyfocusCostRange = new FloatRange(PsyfocusCost, PsyfocusCost); + } + else + { + foreach (AbilityCompProperties comp in comps) + { + if (comp.OverridesPsyfocusCost) + { + psyfocusCostRange = comp.PsyfocusCostRange; + break; + } + } + } + } + return psyfocusCostRange; + } + } + + public Texture2D WarmupMoteSocialSymbol + { + get + { + if (!warmupMoteSocialSymbol.NullOrEmpty() && warmupMoteSocialSymbolCached == null) + { + warmupMoteSocialSymbolCached = ContentFinder.Get(warmupMoteSocialSymbol); + } + return warmupMoteSocialSymbolCached; + } + } + + public IEnumerable StatSummary(Pawn forPawn = null) + { + string text = null; + foreach (AbilityCompProperties comp in comps) + { + if (comp.OverridesPsyfocusCost) + { + text = comp.PsyfocusCostExplanation; + break; + } + } + if (text == null) + { + if (PsyfocusCost > float.Epsilon) + { + yield return "AbilityPsyfocusCost".Translate() + ": " + PsyfocusCost.ToStringPercent(); + } + } + else + { + yield return text; + } + if (EntropyGain > float.Epsilon) + { + yield return string.Concat("AbilityEntropyGain".Translate() + ": ", EntropyGain.ToString()); + } + if (verbProperties.warmupTime > float.Epsilon) + { + yield return string.Concat("AbilityCastingTime".Translate() + ": ", verbProperties.warmupTime.ToString()) + "LetterSecond".Translate(); + } + if (cooldownTicksRange.min == cooldownTicksRange.max && cooldownTicksRange.min > 0) + { + yield return "StatsReport_Cooldown".Translate() + ": " + cooldownTicksRange.min.ToStringTicksToPeriod(allowSeconds: true, shortForm: false, canUseDecimals: true, allowYears: false); + } + float num = EffectDuration(forPawn); + if (num > float.Epsilon) + { + int num2 = num.SecondsToTicks(); + yield return "AbilityDuration".Translate() + ": " + ((num2 >= 2500) ? num2.ToStringTicksToPeriod() : (num.ToString() + "LetterSecond".Translate())); + } + if (HasAreaOfEffect) + { + yield return string.Concat("AbilityEffectRadius".Translate() + ": ", Mathf.Ceil(EffectRadius).ToString()); + } + if (comps == null) + { + yield break; + } + for (int i = 0; i < comps.Count; i++) + { + foreach (string item in comps[i].ExtraStatSummary()) + { + yield return item; + } + } + } + + public float EffectDuration(Pawn forPawn = null) + { + return this.GetStatValueAbstract(StatDefOf.Ability_Duration, forPawn); + } + + public override void PostLoad() + { + if (!string.IsNullOrEmpty(iconPath)) + { + LongEventHandler.ExecuteWhenFinished(delegate + { + uiIcon = ContentFinder.Get(iconPath); + }); + } + } + + public string GetTooltip(Pawn pawn = null) + { + if (cachedTooltip == null || cachedTooltipPawn != pawn) + { + cachedTooltip = LabelCap.Colorize(ColoredText.TipSectionTitleColor) + ((level > 0) ? string.Concat("\n" + "Level".Translate().CapitalizeFirst() + " ", level.ToString()) : "") + "\n\n" + description; + cachedTooltipPawn = pawn; + string text = StatSummary(pawn).ToLineList(); + if (!text.NullOrEmpty()) + { + cachedTooltip = cachedTooltip + "\n\n" + text; + } + } + if (pawn != null && ModsConfig.RoyaltyActive && IsPsycast && level > 0) + { + Faction first = Faction.GetMinTitleForImplantAllFactions(HediffDefOf.PsychicAmplifier).First; + if (first != null) + { + RoyalTitleDef minTitleForImplant = first.GetMinTitleForImplant(HediffDefOf.PsychicAmplifier, level); + RoyalTitleDef currentTitle = pawn.royalty.GetCurrentTitle(first); + if (minTitleForImplant != null && (currentTitle == null || currentTitle.seniority < minTitleForImplant.seniority) && DetectionChance > 0f) + { + return cachedTooltip + "\n\n" + ((string)"PsycastIsIllegal".Translate(pawn.Named("PAWN"), minTitleForImplant.GetLabelCapFor(pawn).Named("TITLE"))).Colorize(ColoredText.WarningColor); + } + } + } + return cachedTooltip; + } + + public override IEnumerable SpecialDisplayStats(StatRequest req) + { + if (cachedTargets == null) + { + cachedTargets = new List(); + if (verbProperties.targetParams.canTargetPawns && verbProperties.targetParams.canTargetSelf) + { + cachedTargets.Add("TargetSelf".Translate()); + } + if (verbProperties.targetParams.canTargetLocations) + { + cachedTargets.Add("TargetGround".Translate()); + } + if (verbProperties.targetParams.canTargetPawns && verbProperties.targetParams.canTargetHumans) + { + cachedTargets.Add("TargetHuman".Translate()); + } + if (verbProperties.targetParams.canTargetPawns && verbProperties.targetParams.canTargetAnimals) + { + cachedTargets.Add("TargetAnimal".Translate()); + } + } + int num = comps.OfType().Sum((CompProperties_AbilityEffect e) => e.goodwillImpact); + if (num != 0) + { + yield return new StatDrawEntry(StatCategoryDefOf.Ability, StatDefOf.Ability_GoodwillImpact, num, req); + } + if (IsPsycast && level != 0) + { + yield return new StatDrawEntry(StatCategoryDefOf.Ability, StatDefOf.Ability_RequiredPsylink, level, req); + } + yield return new StatDrawEntry(StatCategoryDefOf.Ability, StatDefOf.Ability_CastingTime, verbProperties.warmupTime, req); + if (verbProperties.range > 0f) + { + yield return new StatDrawEntry(StatCategoryDefOf.Ability, StatDefOf.Ability_Range, verbProperties.range, req); + } + yield return new StatDrawEntry(StatCategoryDefOf.Ability, "Target".Translate(), cachedTargets.ToCommaList().CapitalizeFirst(), "AbilityTargetDesc".Translate(), 1001); + yield return new StatDrawEntry(StatCategoryDefOf.Ability, "AbilityRequiresLOS".Translate(), verbProperties.requireLineOfSight ? "Yes".Translate() : "No".Translate(), "", 1000); + } + + public override IEnumerable ConfigErrors() + { + foreach (string item in base.ConfigErrors()) + { + yield return item; + } + if (abilityClass == null) + { + yield return "abilityClass is null"; + } + if (verbProperties == null) + { + yield return "verbProperties are null"; + } + if (label.NullOrEmpty()) + { + yield return "no label"; + } + if (statBases != null) + { + foreach (StatModifier statBase in statBases) + { + if (statBases.Count((StatModifier st) => st.stat == statBase.stat) > 1) + { + yield return "defines the stat base " + statBase.stat?.ToString() + " more than once."; + } + } + } + for (int i = 0; i < comps.Count; i++) + { + foreach (string item2 in comps[i].ConfigErrors(this)) + { + yield return item2; + } + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Royalty\Defs\AbilityDefs\Abilities.xml` +**相似度:** 0.5815 + +```xml + + Skip + +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\AbilityStatModifiers.txt` +**相似度:** 0.5807 + +```csharp +public class AbilityStatModifiers +{ + public AbilityDef ability; + + public List modifiers; +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\AbilityDefOf.txt` +**相似度:** 0.5779 + +```csharp +public static class AbilityDefOf +{ + [MayRequireRoyalty] + public static AbilityDef Speech; + + [MayRequireBiotech] + public static AbilityDef ReimplantXenogerm; + + [MayRequireBiotech] + public static AbilityDef ResurrectionMech; + + [MayRequireAnomaly] + public static AbilityDef EntitySkip; + + [MayRequireAnomaly] + public static AbilityDef UnnaturalCorpseSkip; + + [MayRequireAnomaly] + public static AbilityDef ConsumeLeap_Devourer; + + [MayRequireOdyssey] + public static AbilityDef SludgeSpew; + + [MayRequireOdyssey] + public static AbilityDef EggSpew; + + static AbilityDefOf() + { + DefOfHelper.EnsureInitializedInCtor(typeof(AbilityDefOf)); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompAbilityEffect_GiveMentalState.txt` +**相似度:** 0.5541 + +```csharp +public class CompAbilityEffect_GiveMentalState : CompAbilityEffect +{ + public new CompProperties_AbilityGiveMentalState Props => (CompProperties_AbilityGiveMentalState)props; + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + base.Apply(target, dest); + Pawn pawn = (Props.applyToSelf ? parent.pawn : (target.Thing as Pawn)); + if (pawn != null && !pawn.InMentalState) + { + TryGiveMentalState(pawn.RaceProps.IsMechanoid ? (Props.stateDefForMechs ?? Props.stateDef) : Props.stateDef, pawn, parent.def, Props.durationMultiplier, parent.pawn, Props.forced); + RestUtility.WakeUp(pawn); + if (Props.casterEffect != null) + { + Effecter effecter = Props.casterEffect.SpawnAttached(parent.pawn, parent.pawn.MapHeld); + effecter.Trigger(parent.pawn, null); + effecter.Cleanup(); + } + if (Props.targetEffect != null) + { + Effecter effecter2 = Props.targetEffect.SpawnAttached(parent.pawn, parent.pawn.MapHeld); + effecter2.Trigger(pawn, null); + effecter2.Cleanup(); + } + } + } + + public override bool Valid(LocalTargetInfo target, bool throwMessages = false) + { + if (!base.Valid(target, throwMessages)) + { + return false; + } + Pawn pawn = target.Pawn; + if (pawn != null) + { + if (!AbilityUtility.ValidateNoMentalState(pawn, throwMessages, parent)) + { + return false; + } + if (Props.excludeNPCFactions && pawn.Faction != null && !pawn.Faction.IsPlayer) + { + if (throwMessages) + { + Messages.Message("CannotUseAbility".Translate(parent.def.label) + ": " + "TargetBelongsToNPCFaction".Translate(), pawn, MessageTypeDefOf.RejectInput, historical: false); + } + return false; + } + } + return true; + } + + public static void TryGiveMentalState(MentalStateDef def, Pawn p, AbilityDef ability, StatDef multiplierStat, Pawn caster, bool forced = false) + { + if (p.mindState.mentalStateHandler.TryStartMentalState(def, null, forced, forceWake: true, causedByMood: false, caster, transitionSilently: false, causedByDamage: false, ability.IsPsycast)) + { + float num = ability.GetStatValueAbstract(StatDefOf.Ability_Duration, caster); + if (multiplierStat != null) + { + num *= p.GetStatValue(multiplierStat); + } + if (num > 0f) + { + p.mindState.mentalStateHandler.CurState.forceRecoverAfterTicks = num.SecondsToTicks(); + } + p.mindState.mentalStateHandler.CurState.sourceFaction = caster.Faction; + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_ResurrectMech.txt` +**相似度:** 0.5473 + +```csharp +public class CompProperties_ResurrectMech : CompProperties_AbilityEffect +{ + public int maxCorpseAgeTicks = int.MaxValue; + + public List costs = new List(); + + public EffecterDef appliedEffecterDef; + + public EffecterDef centerEffecterDef; + + public CompProperties_ResurrectMech() + { + compClass = typeof(CompAbilityEffect_ResurrectMech); + } + + public override IEnumerable ConfigErrors(AbilityDef parentDef) + { + foreach (string item in base.ConfigErrors(parentDef)) + { + yield return item; + } + if (costs.NullOrEmpty()) + { + yield return "costs list is null"; + yield break; + } + foreach (MechChargeCosts cost in costs) + { + if (cost.weightClass == null) + { + yield return $"costs list contains null weight class with cost {cost.cost}"; + } + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/AddHumanlikeOrders-FloatMenuMakerMap.txt b/MCP/vector_cache/AddHumanlikeOrders-FloatMenuMakerMap.txt new file mode 100644 index 00000000..96addb59 --- /dev/null +++ b/MCP/vector_cache/AddHumanlikeOrders-FloatMenuMakerMap.txt @@ -0,0 +1,519 @@ +根据向量相似度分析,与 'AddHumanlikeOrders, FloatMenuMakerMap' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\FloatMenuMakerMap.txt` + +```csharp +public static class FloatMenuMakerMap +{ + private static List providers; + + public static FloatMenuOptionProvider currentProvider; + + public static Pawn makingFor; + + public static void Init() + { + providers = new List(); + foreach (Type item in typeof(FloatMenuOptionProvider).AllSubclassesNonAbstract()) + { + providers.Add((FloatMenuOptionProvider)Activator.CreateInstance(item)); + } + } + + public static List GetOptions(List selectedPawns, Vector3 clickPos, out FloatMenuContext context) + { + List list = new List(); + context = null; + if (!clickPos.InBounds(Find.CurrentMap)) + { + return list; + } + context = new FloatMenuContext(selectedPawns, clickPos, Find.CurrentMap); + if (!context.allSelectedPawns.Any()) + { + return list; + } + if (!context.ClickedCell.IsValid || !context.ClickedCell.InBounds(Find.CurrentMap)) + { + return list; + } + if (!context.IsMultiselect) + { + AcceptanceReport acceptanceReport = ShouldGenerateFloatMenuForPawn(context.FirstSelectedPawn); + if (!acceptanceReport.Accepted) + { + if (!acceptanceReport.Reason.NullOrEmpty()) + { + Messages.Message(acceptanceReport.Reason, context.FirstSelectedPawn, MessageTypeDefOf.RejectInput, historical: false); + } + return list; + } + } + else + { + context.allSelectedPawns.RemoveAll((Pawn selectedPawn) => !ShouldGenerateFloatMenuForPawn(selectedPawn)); + if (!context.allSelectedPawns.Any()) + { + return list; + } + } + if (!context.IsMultiselect) + { + makingFor = context.FirstSelectedPawn; + } + GetProviderOptions(context, list); + makingFor = null; + return list; + } + + private static void GetProviderOptions(FloatMenuContext context, List options) + { + foreach (FloatMenuOptionProvider provider in providers) + { + try + { + currentProvider = provider; + if (!context.ValidSelectedPawns.Any() || !provider.Applies(context)) + { + continue; + } + options.AddRange(provider.GetOptions(context)); + foreach (Thing clickedThing in context.ClickedThings) + { + if (!provider.TargetThingValid(clickedThing, context)) + { + continue; + } + Thing thing = clickedThing; + if (thing.TryGetComp(out CompSelectProxy comp) && comp.thingToSelect != null) + { + thing = comp.thingToSelect; + } + foreach (FloatMenuOption item in provider.GetOptionsFor(thing, context)) + { + FloatMenuOption floatMenuOption = item; + if (floatMenuOption.iconThing == null) + { + floatMenuOption.iconThing = thing; + } + item.targetsDespawned = !thing.Spawned; + options.Add(item); + } + } + foreach (Pawn clickedPawn in context.ClickedPawns) + { + if (!provider.TargetPawnValid(clickedPawn, context)) + { + continue; + } + foreach (FloatMenuOption item2 in provider.GetOptionsFor(clickedPawn, context)) + { + FloatMenuOption floatMenuOption = item2; + if (floatMenuOption.iconThing == null) + { + floatMenuOption.iconThing = clickedPawn; + } + item2.targetsDespawned = !clickedPawn.Spawned; + options.Add(item2); + } + } + } + catch (Exception arg) + { + Log.Error($"Error in FloatMenuWorker {provider.GetType().Name}: {arg}"); + } + } + currentProvider = null; + } + + public static AcceptanceReport ShouldGenerateFloatMenuForPawn(Pawn pawn) + { + if (pawn.Map != Find.CurrentMap) + { + return false; + } + if (pawn.Downed) + { + return "IsIncapped".Translate(pawn.LabelCap, pawn); + } + if (ModsConfig.BiotechActive && pawn.Deathresting) + { + return "IsDeathresting".Translate(pawn.Named("PAWN")); + } + Lord lord = pawn.GetLord(); + if (lord != null) + { + AcceptanceReport result = lord.AllowsFloatMenu(pawn); + if (!result.Accepted) + { + return result; + } + } + return true; + } + + public static FloatMenuOption GetAutoTakeOption(List options) + { + bool flag = true; + FloatMenuOption floatMenuOption = null; + foreach (FloatMenuOption option in options) + { + if (option.Disabled || !option.autoTakeable) + { + flag = false; + break; + } + if (floatMenuOption == null || option.autoTakeablePriority > floatMenuOption.autoTakeablePriority) + { + floatMenuOption = option; + } + } + if (!flag || floatMenuOption == null) + { + return null; + } + return floatMenuOption; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\FloatMenuContext.txt` +**相似度:** 0.5788 + +```csharp +public class FloatMenuContext +{ + public List allSelectedPawns; + + public Vector3 clickPosition; + + public Map map; + + private IntVec3 cachedClickedCell; + + private List cachedClickedThings; + + private List cachedClickedPawns; + + private Room cachedClickedRoom; + + private Zone cachedClickedZone; + + public IntVec3 ClickedCell => cachedClickedCell; + + public Room ClickedRoom => cachedClickedRoom; + + public Zone ClickedZone => cachedClickedZone; + + public List ClickedThings => cachedClickedThings; + + public List ClickedPawns => cachedClickedPawns; + + public bool IsMultiselect => allSelectedPawns.Count > 1; + + public Pawn FirstSelectedPawn + { + get + { + foreach (Pawn allSelectedPawn in allSelectedPawns) + { + if (FloatMenuMakerMap.currentProvider == null || FloatMenuMakerMap.currentProvider.SelectedPawnValid(allSelectedPawn, this)) + { + return allSelectedPawn; + } + } + return null; + } + } + + public IEnumerable ValidSelectedPawns + { + get + { + foreach (Pawn allSelectedPawn in allSelectedPawns) + { + if (FloatMenuMakerMap.currentProvider == null || FloatMenuMakerMap.currentProvider.SelectedPawnValid(allSelectedPawn, this)) + { + yield return allSelectedPawn; + } + } + } + } + + public FloatMenuContext(List selectedPawns, Vector3 clickPosition, Map map) + { + allSelectedPawns = selectedPawns; + this.clickPosition = clickPosition; + this.map = map; + cachedClickedCell = IntVec3.FromVector3(clickPosition); + cachedClickedRoom = cachedClickedCell.GetRoom(map); + cachedClickedZone = cachedClickedCell.GetZone(map); + cachedClickedThings = GenUI.ThingsUnderMouse(clickPosition, 0.8f, TargetingParameters.ForThing()); + cachedClickedPawns = GenUI.ThingsUnderMouse(clickPosition, 0.8f, TargetingParameters.ForPawns()).OfType().ToList(); + selectedPawns.RemoveAll((Pawn pawn) => !pawn.CanTakeOrder); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\FloatMenuMap.txt` +**相似度:** 0.5739 + +```csharp +public class FloatMenuMap : FloatMenu +{ + private Vector3 clickPos; + + private static Dictionary> cachedChoices = new Dictionary>(); + + private List lastOptionsForRevalidation; + + private int nextOptionToRevalidate; + + public const int RevalidateEveryFrame = 4; + + public FloatMenuMap(List options, string title, Vector3 clickPos) + : base(options, title) + { + this.clickPos = clickPos; + } + + public override void DoWindowContents(Rect inRect) + { + if (!Find.Selector.AnyPawnSelected) + { + Find.WindowStack.TryRemove(this); + return; + } + bool flag = options.Count >= 3; + if (Time.frameCount % 4 == 0 || lastOptionsForRevalidation == null) + { + lastOptionsForRevalidation = FloatMenuMakerMap.GetOptions(Find.Selector.SelectedPawns, clickPos, out var _); + cachedChoices.Clear(); + cachedChoices.Add(clickPos, lastOptionsForRevalidation); + if (!flag) + { + for (int i = 0; i < options.Count; i++) + { + RevalidateOption(options[i]); + } + } + } + else if (flag) + { + if (nextOptionToRevalidate >= options.Count) + { + nextOptionToRevalidate = 0; + } + int num = Mathf.CeilToInt((float)options.Count / 3f); + int num2 = nextOptionToRevalidate; + int num3 = 0; + while (num2 < options.Count && num3 < num) + { + RevalidateOption(options[num2]); + nextOptionToRevalidate++; + num2++; + num3++; + } + } + base.DoWindowContents(inRect); + void RevalidateOption(FloatMenuOption option) + { + if (!option.Disabled && !StillValid(option, lastOptionsForRevalidation)) + { + option.Disabled = true; + } + } + } + + private static bool StillValid(FloatMenuOption opt, List curOpts) + { + if (opt.revalidateClickTarget == null) + { + for (int i = 0; i < curOpts.Count; i++) + { + if (OptionsMatch(opt, curOpts[i])) + { + return true; + } + } + } + else + { + if (!opt.targetsDespawned && !opt.revalidateClickTarget.Spawned) + { + return false; + } + Vector3 key = opt.revalidateClickTarget.PositionHeld.ToVector3Shifted(); + if (!cachedChoices.TryGetValue(key, out var value)) + { + FloatMenuContext context; + List list = FloatMenuMakerMap.GetOptions(Find.Selector.SelectedPawns, key, out context); + cachedChoices.Add(key, list); + value = list; + } + for (int j = 0; j < value.Count; j++) + { + if (OptionsMatch(opt, value[j])) + { + return !value[j].Disabled; + } + } + } + return false; + } + + public override void PreOptionChosen(FloatMenuOption opt) + { + base.PreOptionChosen(opt); + if (!opt.Disabled && !StillValid(opt, FloatMenuMakerMap.GetOptions(Find.Selector.SelectedPawns, clickPos, out var _))) + { + opt.Disabled = true; + } + } + + private static bool OptionsMatch(FloatMenuOption a, FloatMenuOption b) + { + if (a.Label == b.Label) + { + return true; + } + return false; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\FloatMenuOptionProvider.txt` +**相似度:** 0.5483 + +```csharp +public abstract class FloatMenuOptionProvider +{ + protected abstract bool Drafted { get; } + + protected abstract bool Undrafted { get; } + + protected abstract bool Multiselect { get; } + + protected virtual bool RequiresManipulation => false; + + protected virtual bool MechanoidCanDo => false; + + protected virtual bool CanSelfTarget => false; + + public virtual bool CanTargetDespawned => false; + + protected virtual bool IgnoreFogged => true; + + public virtual bool SelectedPawnValid(Pawn pawn, FloatMenuContext context) + { + if (pawn.IsMutant && pawn.mutant.Def.whitelistedFloatMenuProviders != null && !pawn.mutant.Def.whitelistedFloatMenuProviders.Contains(FloatMenuMakerMap.currentProvider.GetType())) + { + return false; + } + if (!Drafted && pawn.Drafted) + { + return false; + } + if (!Undrafted && !pawn.Drafted) + { + return false; + } + if (!MechanoidCanDo && pawn.RaceProps.IsMechanoid) + { + return false; + } + if (RequiresManipulation && !pawn.health.capacities.CapableOf(PawnCapacityDefOf.Manipulation)) + { + return false; + } + return true; + } + + public virtual bool TargetThingValid(Thing thing, FloatMenuContext context) + { + if (!CanTargetDespawned && !thing.Spawned) + { + return false; + } + if (thing is Pawn pawn && !TargetPawnValid(pawn, context)) + { + return false; + } + return true; + } + + public virtual bool TargetPawnValid(Pawn pawn, FloatMenuContext context) + { + if (!CanSelfTarget && pawn == context.FirstSelectedPawn) + { + return false; + } + return true; + } + + public virtual bool Applies(FloatMenuContext context) + { + if (!Multiselect && context.IsMultiselect) + { + return false; + } + if (IgnoreFogged && context.ClickedCell.Fogged(context.map)) + { + return false; + } + if (!AppliesInt(context)) + { + return false; + } + return true; + } + + protected virtual bool AppliesInt(FloatMenuContext context) + { + return true; + } + + public virtual IEnumerable GetOptions(FloatMenuContext context) + { + FloatMenuOption singleOption = GetSingleOption(context); + if (singleOption != null) + { + yield return singleOption; + } + } + + public virtual IEnumerable GetOptionsFor(Thing clickedThing, FloatMenuContext context) + { + FloatMenuOption singleOptionFor = GetSingleOptionFor(clickedThing, context); + if (singleOptionFor != null) + { + yield return singleOptionFor; + } + } + + public virtual IEnumerable GetOptionsFor(Pawn clickedPawn, FloatMenuContext context) + { + FloatMenuOption singleOptionFor = GetSingleOptionFor(clickedPawn, context); + if (singleOptionFor != null) + { + yield return singleOptionFor; + } + } + + protected virtual FloatMenuOption GetSingleOption(FloatMenuContext context) + { + return null; + } + + protected virtual FloatMenuOption GetSingleOptionFor(Thing clickedThing, FloatMenuContext context) + { + return null; + } + + protected virtual FloatMenuOption GetSingleOptionFor(Pawn clickedPawn, FloatMenuContext context) + { + return null; + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/BiosculpterPod-ThingDef.txt b/MCP/vector_cache/BiosculpterPod-ThingDef.txt new file mode 100644 index 00000000..a55a7d7b --- /dev/null +++ b/MCP/vector_cache/BiosculpterPod-ThingDef.txt @@ -0,0 +1,1502 @@ +根据向量相似度分析,与 'BiosculpterPod, ThingDef' 最相关的代码定义如下: + +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_BaseCycle.txt` +**相似度:** 0.7659 + +```csharp +public abstract class CompProperties_BiosculpterPod_BaseCycle : CompProperties +{ + [NoTranslate] + public string key; + + [MustTranslate] + public string label; + + [MustTranslate] + public string description; + + [NoTranslate] + public string iconPath; + + public float durationDays; + + public Color operatingColor = new Color(0.5f, 0.7f, 0.5f); + + public ThoughtDef gainThoughtOnCompletion; + + public List requiredResearch; + + public List extraRequiredIngredients; + + private Texture2D icon; + + public Texture2D Icon + { + get + { + if (icon == null) + { + icon = ContentFinder.Get(iconPath); + } + return icon; + } + } + + public string LabelCap => label.CapitalizeFirst(); +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompBiosculpterPod.txt` +**相似度:** 0.7294 + +```csharp +public class CompBiosculpterPod : ThingComp, ISuspendableThingHolder, IThingHolder, IThingHolderWithDrawnPawn, IStoreSettingsParent, INotifyHauledTo, ISearchableContents +{ + private const int NoPowerEjectCumulativeTicks = 60000; + + private const int BiotunedDuration = 4800000; + + private const float NutritionRequired = 5f; + + private const float CacheForSecs = 2f; + + private static readonly Texture2D InterruptCycleIcon = ContentFinder.Get("UI/Designators/Cancel"); + + private static readonly Material BackgroundMat = SolidColorMaterials.NewSolidColorMaterial(new Color(0.082f, 0.078f, 0.063f), ShaderDatabase.SolidColorBehind); + + private const float BackgroundRect_YOff = 0.07317074f; + + private const float Pawn_YOff = 0.03658537f; + + private string currentCycleKey; + + private float currentCycleTicksRemaining; + + private int currentCyclePowerCutTicks; + + private ThingOwner innerContainer; + + private Pawn biotunedTo; + + private int biotunedCountdownTicks; + + private StorageSettings allowedNutritionSettings; + + private float liquifiedNutrition; + + public bool autoLoadNutrition = true; + + public bool devFillPodLatch; + + private bool autoAgeReversal; + + private int tickEntered = -99999; + + public Job queuedEnterJob; + + public Pawn queuedPawn; + + private List chosenExtraItems = new List(); + + private List cycleEligiblePawnOptions = new List(); + + private Pawn pawnEnteringBiosculpter; + + private Dictionary> cachedExtraIngredients = new Dictionary>(); + + private Dictionary cachedAnyPawnEligible = new Dictionary(); + + private static Dictionary> cachedBiotunedPods = new Dictionary>(); + + private Pawn cacheReachIngredientsPawn; + + private CompBiosculpterPod_Cycle cacheReachIngredientsCycle; + + private float cacheReachIngredientsTime = float.MinValue; + + private bool cacheReachIngredientsResult; + + private Effecter progressBarEffecter; + + private Effecter operatingEffecter; + + private Effecter readyEffecter; + + private Texture2D cachedAutoAgeReverseIcon; + + private List cachedAvailableCycles; + + private Dictionary cycleLookup; + + private static string cachedAgeReversalCycleKey = null; + + private List tmpIngredientsStrings = new List(); + + private static readonly List tmpItems = new List(); + + private CompPowerTrader powerTraderComp; + + private CompPower powerComp; + + private static List cachedPodDefs; + + public CompProperties_BiosculpterPod Props => props as CompProperties_BiosculpterPod; + + public ThingOwner SearchableContents => innerContainer; + + public bool IsContentsSuspended => true; + + public float RequiredNutritionRemaining => Mathf.Max(5f - liquifiedNutrition, 0f); + + public bool NutritionLoaded => RequiredNutritionRemaining <= 0f; + + public bool AutoAgeReversal => autoAgeReversal; + + private Texture2D AutoAgeReversalIcon + { + get + { + if (cachedAutoAgeReverseIcon == null) + { + cachedAutoAgeReverseIcon = ContentFinder.Get("UI/Gizmos/BiosculpterAutoAgeReversal"); + } + return cachedAutoAgeReverseIcon; + } + } + + public BiosculpterPodState State + { + get + { + if (Occupant != null) + { + return BiosculpterPodState.Occupied; + } + if (NutritionLoaded) + { + return BiosculpterPodState.SelectingCycle; + } + return BiosculpterPodState.LoadingNutrition; + } + } + + public Pawn Occupant + { + get + { + if (pawnEnteringBiosculpter != null) + { + return pawnEnteringBiosculpter; + } + if (currentCycleKey == null) + { + return null; + } + if (innerContainer.Count != 1) + { + return null; + } + return innerContainer[0] as Pawn; + } + } + + public CompBiosculpterPod_Cycle CurrentCycle + { + get + { + if (currentCycleKey == null) + { + return null; + } + foreach (CompBiosculpterPod_Cycle availableCycle in AvailableCycles) + { + if (availableCycle.Props.key == currentCycleKey) + { + return availableCycle; + } + } + return null; + } + } + + public List AvailableCycles + { + get + { + if (cachedAvailableCycles == null) + { + SetupCycleCaches(); + } + return cachedAvailableCycles; + } + } + + public string AgeReversalCycleKey + { + get + { + if (cachedAgeReversalCycleKey == null) + { + SetupCycleCaches(); + } + return cachedAgeReversalCycleKey; + } + } + + private float CycleSpeedFactorNoPawn => CleanlinessSpeedFactor * BiotunedSpeedFactor; + + public float CycleSpeedFactor + { + get + { + if (Occupant == null) + { + return Mathf.Max(0.1f, CycleSpeedFactorNoPawn); + } + return GetCycleSpeedFactorForPawn(Occupant); + } + } + + private float CleanlinessSpeedFactor => parent.GetStatValue(StatDefOf.BiosculpterPodSpeedFactor); + + private float BiotunedSpeedFactor + { + get + { + if (biotunedTo == null) + { + return 1f; + } + return Props.biotunedCycleSpeedFactor; + } + } + + public bool PowerOn => parent.TryGetComp().PowerOn; + + public float HeldPawnDrawPos_Y => parent.DrawPos.y - 0.03658537f; + + public float HeldPawnBodyAngle => parent.Rotation.Opposite.AsAngle; + + public PawnPosture HeldPawnPosture => PawnPosture.LayingOnGroundFaceUp; + + public bool StorageTabVisible => true; + + public CompBiosculpterPod() + { + innerContainer = new ThingOwner(this); + } + + public override void Initialize(CompProperties props) + { + base.Initialize(props); + allowedNutritionSettings = new StorageSettings(this); + if (parent.def.building.defaultStorageSettings != null) + { + allowedNutritionSettings.CopyFrom(parent.def.building.defaultStorageSettings); + } + } + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + if (ModLister.CheckIdeology("Biosculpter pod comp")) + { + base.PostSpawnSetup(respawningAfterLoad); + } + } + + public override void PostExposeData() + { + base.PostExposeData(); + Scribe_Deep.Look(ref innerContainer, "innerContainer", this); + Scribe_Values.Look(ref currentCycleKey, "currentCycleKey"); + Scribe_Values.Look(ref currentCycleTicksRemaining, "currentCycleTicksRemaining", 0f); + Scribe_Values.Look(ref currentCyclePowerCutTicks, "currentCyclePowerCutTicks", 0); + Scribe_References.Look(ref biotunedTo, "biotunedTo"); + Scribe_Values.Look(ref biotunedCountdownTicks, "biotunedCountdownTicks", 0); + Scribe_Deep.Look(ref allowedNutritionSettings, "allowedNutritionSettings"); + Scribe_Values.Look(ref liquifiedNutrition, "liquifiedNutrition", 0f); + Scribe_Values.Look(ref autoLoadNutrition, "autoLoadNutrition", defaultValue: false); + Scribe_Values.Look(ref devFillPodLatch, "devFillPodLatch", defaultValue: false); + Scribe_Values.Look(ref autoAgeReversal, "autoAgeReversal", defaultValue: false); + Scribe_Values.Look(ref tickEntered, "tickEntered", 0); + Scribe_References.Look(ref queuedEnterJob, "queuedEnterJob"); + Scribe_References.Look(ref queuedPawn, "queuedPawn"); + if (allowedNutritionSettings == null) + { + allowedNutritionSettings = new StorageSettings(this); + if (parent.def.building.defaultStorageSettings != null) + { + allowedNutritionSettings.CopyFrom(parent.def.building.defaultStorageSettings); + } + } + if (Scribe.mode == LoadSaveMode.PostLoadInit) + { + if (currentCycleKey == "healing") + { + currentCycleKey = "medic"; + } + if (biotunedTo != null) + { + SetBiotuned(biotunedTo); + } + LiquifyNutrition(); + } + } + + public CompBiosculpterPod_Cycle GetCycle(string key) + { + if (cycleLookup == null) + { + SetupCycleCaches(); + } + return cycleLookup[key]; + } + + public float GetCycleSpeedFactorForPawn(Pawn p) + { + return Mathf.Max(0.1f, CycleSpeedFactorNoPawn * p.GetStatValue(StatDefOf.BiosculpterOccupantSpeed)); + } + + private void SetupCycleCaches() + { + cachedAvailableCycles = new List(); + cachedAvailableCycles.AddRange(parent.AllComps.OfType()); + cycleLookup = new Dictionary(); + foreach (CompBiosculpterPod_Cycle cachedAvailableCycle in cachedAvailableCycles) + { + if (cachedAvailableCycle is CompBiosculpterPod_AgeReversalCycle compBiosculpterPod_AgeReversalCycle) + { + cachedAgeReversalCycleKey = compBiosculpterPod_AgeReversalCycle.Props.key; + } + cycleLookup[cachedAvailableCycle.Props.key] = cachedAvailableCycle; + } + } + + public void SetBiotuned(Pawn newBiotunedTo) + { + if (newBiotunedTo != biotunedTo) + { + autoAgeReversal = false; + } + if (biotunedTo != null && cachedBiotunedPods.ContainsKey(biotunedTo)) + { + cachedBiotunedPods[biotunedTo].Remove(this); + } + if (newBiotunedTo != null && !cachedBiotunedPods.ContainsKey(newBiotunedTo)) + { + cachedBiotunedPods[newBiotunedTo] = new List(); + } + if (newBiotunedTo != null && !cachedBiotunedPods[newBiotunedTo].Contains(this)) + { + cachedBiotunedPods[newBiotunedTo].Add(this); + } + if (newBiotunedTo != null && newBiotunedTo != biotunedTo) + { + biotunedCountdownTicks = 4800000; + } + biotunedTo = newBiotunedTo; + } + + public override void PostDestroy(DestroyMode mode, Map previousMap) + { + SetBiotuned(null); + if (mode == DestroyMode.Deconstruct || mode == DestroyMode.KillFinalize) + { + EjectContents(interrupted: true, playSounds: false, previousMap); + } + innerContainer.ClearAndDestroyContents(); + base.PostDestroy(mode, previousMap); + } + + public override void PostDeSpawn(Map map, DestroyMode mode = DestroyMode.Vanish) + { + if (mode != DestroyMode.WillReplace) + { + EjectContents(interrupted: true, playSounds: false, map); + currentCycleKey = null; + } + progressBarEffecter?.Cleanup(); + progressBarEffecter = null; + operatingEffecter?.Cleanup(); + operatingEffecter = null; + readyEffecter?.Cleanup(); + readyEffecter = null; + } + + public override void DrawGUIOverlay() + { + base.DrawGUIOverlay(); + if (!Find.ScreenshotModeHandler.Active && (biotunedTo != null || Occupant != null)) + { + GenMapUI.DrawThingLabel(parent, biotunedTo?.LabelShort ?? Occupant.LabelShort, GenMapUI.DefaultThingLabelColor); + } + } + + public override string CompInspectStringExtra() + { + StringBuilder stringBuilder = new StringBuilder(); + BiosculpterPodState state = State; + if (parent.Spawned) + { + CompBiosculpterPod_Cycle currentCycle = CurrentCycle; + if (currentCycle != null) + { + stringBuilder.AppendLineIfNotEmpty().Append("BiosculpterPodCycleLabel".Translate()).Append(": ") + .Append(currentCycle.Props.LabelCap); + if (biotunedTo == null) + { + stringBuilder.Append(" " + "BiosculpterPodCycleWillBiotune".Translate()); + } + } + else if (state == BiosculpterPodState.SelectingCycle) + { + if (PowerOn) + { + if (queuedEnterJob != null && !queuedEnterJob.biosculpterCycleKey.NullOrEmpty()) + { + stringBuilder.Append("BiosculpterPodCycleStandby".Translate(GetCycle(queuedEnterJob.biosculpterCycleKey).Props.label.Named("CYCLE"), queuedPawn.Named("PAWN"))); + } + else + { + stringBuilder.Append("BiosculpterPodCycleSelection".Translate().CapitalizeFirst()); + } + } + else + { + stringBuilder.Append("BiosculpterPodCycleSelectionNoPower".Translate().CapitalizeFirst()); + } + } + if (state == BiosculpterPodState.LoadingNutrition) + { + stringBuilder.Append("BiosculpterPodCycleLabelLoading".Translate().CapitalizeFirst()); + stringBuilder.AppendLineIfNotEmpty().Append("Nutrition".Translate()).Append(": ") + .Append(liquifiedNutrition.ToStringByStyle(ToStringStyle.FloatMaxOne)) + .Append(" / ") + .Append(5f); + } + if (state == BiosculpterPodState.Occupied) + { + float num = currentCycleTicksRemaining / CycleSpeedFactor; + stringBuilder.AppendLineIfNotEmpty().Append("Contains".Translate()).Append(": ") + .Append(Occupant.NameShortColored.Resolve()); + if (!PowerOn) + { + stringBuilder.AppendLine().Append("BiosculpterCycleNoPowerInterrupt".Translate((60000 - currentCyclePowerCutTicks).ToStringTicksToPeriod().Named("TIME")).Colorize(ColorLibrary.RedReadable)); + } + stringBuilder.AppendLine().Append("BiosculpterCycleTimeRemaining".Translate()).Append(": ") + .Append(((int)num).ToStringTicksToPeriod().Colorize(ColoredText.DateTimeColor)); + Ideo ideo = Occupant.Ideo; + if (ideo != null && ideo.HasPrecept(PreceptDefOf.Biosculpting_Accelerated)) + { + stringBuilder.Append(" (" + "BiosculpterCycleAccelerated".Translate() + ")"); + } + if (biotunedTo != null) + { + stringBuilder.AppendLine().Append("BiosculpterBiotunedSpeedFactor".Translate()).Append(": ") + .Append(BiotunedSpeedFactor.ToStringPercent()); + } + stringBuilder.AppendLine().Append("BiosculpterCleanlinessSpeedFactor".Translate()).Append(": ") + .Append(CleanlinessSpeedFactor.ToStringPercent()); + } + } + if (biotunedTo != null && state != BiosculpterPodState.Occupied) + { + stringBuilder.AppendLineIfNotEmpty().Append("BiosculpterBiotunedTo".Translate()).Append(": ") + .Append(biotunedTo.LabelShort) + .Append(" (") + .Append(biotunedCountdownTicks.ToStringTicksToPeriod()) + .Append(")"); + } + if (stringBuilder.Length <= 0) + { + return null; + } + return stringBuilder.ToString(); + } + + public override IEnumerable CompGetGizmosExtra() + { + BiosculpterPodState state = State; + string cycleIndependentCannotUseReason = CannotUseNowReason(); + foreach (CompBiosculpterPod_Cycle cycle in AvailableCycles) + { + string text = cycleIndependentCannotUseReason ?? CannotUseNowCycleReason(cycle); + Command_Action command_Action = new Command_Action(); + command_Action.defaultLabel = "BiosculpterPodCycleCommand".Translate(cycle.Props.label) + ((biotunedTo != null) ? (" (" + biotunedTo.LabelShort + ")") : ""); + command_Action.defaultDesc = CycleDescription(cycle); + command_Action.icon = cycle.Props.Icon; + command_Action.action = delegate + { + SelectPawnsForCycleOptions(cycle, out var options2); + if (biotunedTo != null && options2.Count > 0) + { + options2[0].action(); + if (!(cycle is CompBiosculpterPod_HealingCycle)) + { + Messages.Message("BiosculpterEnteringMessage".Translate(biotunedTo.Named("PAWN"), cycle.Props.label.Named("CYCLE")).CapitalizeFirst(), parent, MessageTypeDefOf.SilentInput, historical: false); + } + } + else + { + Find.WindowStack.Add(new FloatMenu(options2)); + } + }; + command_Action.activateSound = SoundDefOf.Tick_Tiny; + command_Action.Disabled = text != null; + List options; + if (text != null) + { + command_Action.Disable(text); + } + else if (!SelectPawnsForCycleOptions(cycle, out options, shortCircuit: true)) + { + command_Action.Disable((biotunedTo != null) ? "BiosculpterNoEligiblePawnsBiotuned".Translate(biotunedTo.Named("PAWN")) : "BiosculpterNoEligiblePawns".Translate()); + } + yield return command_Action; + } + if (state == BiosculpterPodState.Occupied) + { + Command_Action command_Action2 = new Command_Action(); + command_Action2.defaultLabel = "BiosculpterInteruptCycle".Translate(); + command_Action2.defaultDesc = "BiosculpterInteruptCycleDesc".Translate(); + command_Action2.icon = InterruptCycleIcon; + command_Action2.action = delegate + { + EjectContents(interrupted: true, playSounds: true); + }; + command_Action2.activateSound = SoundDefOf.Designate_Cancel; + yield return command_Action2; + } + Command_Toggle command_Toggle = new Command_Toggle(); + command_Toggle.defaultLabel = "BiosculpterAutoLoadNutritionLabel".Translate(); + command_Toggle.defaultDesc = "BiosculpterAutoLoadNutritionDescription".Translate(); + command_Toggle.icon = (autoLoadNutrition ? TexCommand.ForbidOff : TexCommand.ForbidOn); + command_Toggle.isActive = () => autoLoadNutrition; + command_Toggle.toggleAction = delegate + { + autoLoadNutrition = !autoLoadNutrition; + }; + yield return command_Toggle; + if ((biotunedTo?.Ideo?.HasPrecept(PreceptDefOf.AgeReversal_Demanded)).GetValueOrDefault()) + { + Command_Toggle command_Toggle2 = new Command_Toggle(); + command_Toggle2.defaultLabel = "BiosculpterAutoAgeReversalLabel".Translate(biotunedTo.Named("PAWN")); + TaggedString taggedString = ((biotunedTo.ageTracker.AgeReversalDemandedDeadlineTicks > 0) ? "BiosculpterAutoAgeReversalDescriptionFuture".Translate(biotunedTo.Named("PAWN"), ((int)biotunedTo.ageTracker.AgeReversalDemandedDeadlineTicks).ToStringTicksToPeriodVague().Named("TIME")) : "BiosculpterAutoAgeReversalDescriptionNow".Translate(biotunedTo.Named("PAWN"))); + command_Toggle2.defaultDesc = "BiosculpterAutoAgeReversalDescription".Translate(biotunedTo.Named("PAWN"), taggedString.Named("NEXTTREATMENT")); + command_Toggle2.icon = AutoAgeReversalIcon; + command_Toggle2.isActive = () => AutoAgeReversal; + command_Toggle2.toggleAction = delegate + { + autoAgeReversal = !autoAgeReversal; + }; + if (!CanAgeReverse(biotunedTo)) + { + command_Toggle2.Disable("UnderMinBiosculpterAgeReversalAge".Translate(biotunedTo.ageTracker.AdultMinAge.Named("ADULTAGE")).CapitalizeFirst()); + autoAgeReversal = false; + } + yield return command_Toggle2; + } + foreach (Gizmo item in StorageSettingsClipboard.CopyPasteGizmosFor(allowedNutritionSettings)) + { + yield return item; + } + Gizmo gizmo = Building.SelectContainedItemGizmo(parent, Occupant); + if (gizmo != null) + { + yield return gizmo; + } + if (DebugSettings.ShowDevGizmos) + { + yield return new Command_Action + { + defaultLabel = "DEV: complete cycle", + action = delegate + { + currentCycleTicksRemaining = 10f; + }, + Disabled = (State != BiosculpterPodState.Occupied) + }; + yield return new Command_Action + { + defaultLabel = "DEV: advance cycle +1 day", + action = delegate + { + currentCycleTicksRemaining -= 60000f; + }, + Disabled = (State != BiosculpterPodState.Occupied) + }; + yield return new Command_Action + { + defaultLabel = "DEV: complete biotune timer", + action = delegate + { + biotunedCountdownTicks = 10; + }, + Disabled = (biotunedCountdownTicks <= 0) + }; + yield return new Command_Action + { + defaultLabel = "DEV: fill nutrition and cycle ingredients", + action = delegate + { + liquifiedNutrition = 5f; + devFillPodLatch = true; + }, + Disabled = (State == BiosculpterPodState.Occupied || (devFillPodLatch && liquifiedNutrition == 5f)) + }; + } + } + + private string IngredientsDescription(CompBiosculpterPod_Cycle cycle) + { + tmpIngredientsStrings.Clear(); + if (!cycle.Props.extraRequiredIngredients.NullOrEmpty() && !devFillPodLatch) + { + for (int i = 0; i < cycle.Props.extraRequiredIngredients.Count; i++) + { + tmpIngredientsStrings.Add(cycle.Props.extraRequiredIngredients[i].Summary); + } + } + return tmpIngredientsStrings.ToCommaList(useAnd: true); + } + + private string CycleDescription(CompBiosculpterPod_Cycle cycle) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(cycle.Description(biotunedTo)); + float num = cycle.Props.durationDays / CycleSpeedFactor; + float num2 = num / PreceptDefOf.Biosculpting_Accelerated.biosculpterPodCycleSpeedFactor; + stringBuilder.AppendLine("\n\n" + "BiosculpterPodCycleDuration".Translate() + ": " + ((int)(num * 60000f)).ToStringTicksToDays()); + if (!Find.IdeoManager.classicMode) + { + stringBuilder.Append("BiosculpterPodCycleDurationTranshumanists".Translate() + ": " + ((int)(num2 * 60000f)).ToStringTicksToDays()); + } + return stringBuilder.ToString(); + } + + public bool PawnCanUseNow(Pawn pawn, CompBiosculpterPod_Cycle cycle) + { + return (CannotUseNowReason() ?? CannotUseNowPawnReason(pawn) ?? CannotUseNowCycleReason(cycle) ?? CannotUseNowPawnCycleReason(pawn, cycle)) == null; + } + + public override IEnumerable CompFloatMenuOptions(Pawn selPawn) + { + if (selPawn.IsQuestLodger()) + { + yield return new FloatMenuOption("CannotEnter".Translate() + ": " + "CryptosleepCasketGuestsNotAllowed".Translate().CapitalizeFirst(), null); + yield break; + } + string cycleIndependentfailureReason = CannotUseNowReason() ?? CannotUseNowPawnReason(selPawn); + foreach (CompBiosculpterPod_Cycle cycle in AvailableCycles) + { + string text = cycleIndependentfailureReason ?? CannotUseNowCycleReason(cycle) ?? CannotUseNowPawnCycleReason(selPawn, cycle); + if (text != null) + { + yield return new FloatMenuOption(CannotStartText(cycle, text), null); + continue; + } + string label = "EnterBiosculpterPod".Translate(cycle.Props.label, ((int)(cycle.Props.durationDays / GetCycleSpeedFactorForPawn(selPawn) * 60000f)).ToStringTicksToDays()); + yield return FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(label, delegate + { + PrepareCycleJob(selPawn, selPawn, cycle, EnterBiosculpterJob()); + }), selPawn, parent); + } + } + + public static bool CanAgeReverse(Pawn biosculptee) + { + return biosculptee.ageTracker.Adult; + } + + public static List BiotunedPods(Pawn pawn) + { + return cachedBiotunedPods.TryGetValue(pawn); + } + + public static bool HasBiotunedAutoAgeReversePod(Pawn pawn) + { + List list = cachedBiotunedPods.TryGetValue(pawn); + if (list == null) + { + return false; + } + foreach (CompBiosculpterPod item in list) + { + if (item.AutoAgeReversal) + { + return true; + } + } + return false; + } + + public static string CannotStartText(CompBiosculpterPod_Cycle cycle, string translatedReason) + { + return "BiosculpterCannotStartCycle".Translate(cycle.Props.label) + ": " + translatedReason.CapitalizeFirst(); + } + + public string CannotUseNowCycleReason(CompBiosculpterPod_Cycle cycle) + { + List list = cycle.MissingResearchLabels(); + if (list.Any()) + { + return "MissingRequiredResearch".Translate() + " " + list.ToCommaList(); + } + return null; + } + + public string CannotUseNowPawnCycleReason(Pawn p, CompBiosculpterPod_Cycle cycle, bool checkIngredients = true) + { + return CannotUseNowPawnCycleReason(p, p, cycle, checkIngredients); + } + + private bool CanReachOrHasIngredients(Pawn hauler, Pawn biosculptee, CompBiosculpterPod_Cycle cycle, bool useCache = false) + { + if (!PawnCarryingExtraCycleIngredients(biosculptee, cycle) && (biosculptee == hauler || !PawnCarryingExtraCycleIngredients(hauler, cycle))) + { + return CanReachRequiredIngredients(hauler, cycle, useCache); + } + return true; + } + + public string CannotUseNowPawnCycleReason(Pawn hauler, Pawn biosculptee, CompBiosculpterPod_Cycle cycle, bool checkIngredients = true) + { + if (AgeReversalCycleKey != null && cycle.Props.key == AgeReversalCycleKey && !CanAgeReverse(biosculptee)) + { + return "UnderMinBiosculpterAgeReversalAge".Translate(biosculptee.ageTracker.AdultMinAge.Named("ADULTAGE")).CapitalizeFirst(); + } + if (checkIngredients && !CanReachOrHasIngredients(hauler, biosculptee, cycle, useCache: true)) + { + return "BiosculpterMissingIngredients".Translate(IngredientsDescription(cycle).Named("INGREDIENTS")).CapitalizeFirst(); + } + return null; + } + + public string CannotUseNowPawnReason(Pawn p) + { + if (biotunedTo != null && biotunedTo != p) + { + return "BiosculpterBiotunedToAnother".Translate().CapitalizeFirst(); + } + if (!p.CanReach(parent, PathEndMode.InteractionCell, Danger.Deadly)) + { + return "NoPath".Translate().CapitalizeFirst(); + } + return null; + } + + public string CannotUseNowReason() + { + if (!PowerOn) + { + return "NoPower".Translate().CapitalizeFirst(); + } + if (State == BiosculpterPodState.LoadingNutrition) + { + return "BiosculpterNutritionNotLoaded".Translate().CapitalizeFirst(); + } + if (State == BiosculpterPodState.Occupied) + { + return "BiosculpterOccupied".Translate().CapitalizeFirst(); + } + return null; + } + + private List RequiredIngredients(CompBiosculpterPod_Cycle cycle) + { + List extraRequiredIngredients = cycle.Props.extraRequiredIngredients; + if (extraRequiredIngredients == null || devFillPodLatch) + { + return null; + } + if (!cachedExtraIngredients.ContainsKey(cycle)) + { + cachedExtraIngredients[cycle] = extraRequiredIngredients.Select((ThingDefCountClass tc) => tc.ToIngredientCount()).ToList(); + } + return cachedExtraIngredients[cycle]; + } + + private bool CanReachRequiredIngredients(Pawn pawn, CompBiosculpterPod_Cycle cycle, bool useCache = false) + { + chosenExtraItems.Clear(); + if (cycle.Props.extraRequiredIngredients == null || devFillPodLatch) + { + return true; + } + float realtimeSinceStartup = Time.realtimeSinceStartup; + if (useCache && cacheReachIngredientsPawn == pawn && cacheReachIngredientsCycle == cycle && realtimeSinceStartup < cacheReachIngredientsTime + 2f) + { + return cacheReachIngredientsResult; + } + cacheReachIngredientsPawn = pawn; + cacheReachIngredientsCycle = cycle; + cacheReachIngredientsTime = realtimeSinceStartup; + cacheReachIngredientsResult = WorkGiver_DoBill.TryFindBestFixedIngredients(RequiredIngredients(cycle), pawn, parent, chosenExtraItems); + return cacheReachIngredientsResult; + } + + private bool SelectPawnCycleOption(Pawn pawn, CompBiosculpterPod_Cycle cycle, out FloatMenuOption option) + { + string text = CannotUseNowPawnReason(pawn) ?? CannotUseNowPawnCycleReason(pawn, cycle, checkIngredients: false); + string label = pawn.Label + ((text == null) ? "" : (": " + text)); + Action action = null; + if (text == null) + { + action = delegate + { + PrepareCycleJob(pawn, pawn, cycle, EnterBiosculpterJob()); + }; + } + option = new FloatMenuOption(label, action); + return text == null; + } + + private bool SelectPawnsForCycleOptions(CompBiosculpterPod_Cycle cycle, out List options, bool shortCircuit = false) + { + cycleEligiblePawnOptions.Clear(); + options = cycleEligiblePawnOptions; + if (!cachedAnyPawnEligible.ContainsKey(cycle)) + { + cachedAnyPawnEligible[cycle] = new CacheAnyPawnEligibleCycle + { + gameTime = float.MinValue + }; + } + int ticksGame = Find.TickManager.TicksGame; + if (shortCircuit && (float)ticksGame < cachedAnyPawnEligible[cycle].gameTime + 2f) + { + return cachedAnyPawnEligible[cycle].anyEligible; + } + cachedAnyPawnEligible[cycle].gameTime = ticksGame; + if (biotunedTo != null) + { + if (biotunedTo.Dead || !biotunedTo.Spawned || biotunedTo.Map != parent.Map) + { + cachedAnyPawnEligible[cycle].anyEligible = false; + return cachedAnyPawnEligible[cycle].anyEligible; + } + if (SelectPawnCycleOption(biotunedTo, cycle, out var option) && shortCircuit) + { + cachedAnyPawnEligible[cycle].anyEligible = true; + return cachedAnyPawnEligible[cycle].anyEligible; + } + cycleEligiblePawnOptions.Add(option); + } + else + { + foreach (Pawn item in parent.Map.mapPawns.FreeColonistsSpawned) + { + if (SelectPawnCycleOption(item, cycle, out var option2) && shortCircuit) + { + cachedAnyPawnEligible[cycle].anyEligible = true; + return cachedAnyPawnEligible[cycle].anyEligible; + } + cycleEligiblePawnOptions.Add(option2); + } + } + cachedAnyPawnEligible[cycle].anyEligible = cycleEligiblePawnOptions.Count > 0; + return cachedAnyPawnEligible[cycle].anyEligible; + } + + public Job EnterBiosculpterJob() + { + return JobMaker.MakeJob(JobDefOf.EnterBiosculpterPod, parent); + } + + public Job MakeCarryToBiosculpterJob(Pawn willBeCarried) + { + return JobMaker.MakeJob(JobDefOf.CarryToBiosculpterPod, willBeCarried, LocalTargetInfo.Invalid, parent); + } + + public void ConfigureJobForCycle(Job job, CompBiosculpterPod_Cycle cycle, List extraIngredients) + { + if (!extraIngredients.NullOrEmpty()) + { + job.targetQueueB = new List(extraIngredients.Count); + job.countQueue = new List(extraIngredients.Count); + foreach (ThingCount extraIngredient in extraIngredients) + { + job.targetQueueB.Add(extraIngredient.Thing); + job.countQueue.Add(extraIngredient.Count); + } + } + job.haulMode = HaulMode.ToCellNonStorage; + job.biosculpterCycleKey = cycle.Props.key; + } + + public void PrepareCycleJob(Pawn hauler, Pawn biosculptee, CompBiosculpterPod_Cycle cycle, Job job) + { + OrderToPod(cycle, biosculptee, delegate + { + chosenExtraItems.Clear(); + if (!CanReachOrHasIngredients(hauler, biosculptee, cycle)) + { + Messages.Message("BiosculpterMissingIngredients".Translate(IngredientsDescription(cycle).Named("INGREDIENTS")).CapitalizeFirst(), parent, MessageTypeDefOf.NegativeEvent, historical: false); + } + else + { + ConfigureJobForCycle(job, cycle, chosenExtraItems); + if (cycle.Props.extraRequiredIngredients != null && !devFillPodLatch) + { + if (job.def == JobDefOf.CarryToBiosculpterPod) + { + Messages.Message("BiosculpterCarryStartedMessage".Translate(hauler.Named("PAWN"), IngredientsDescription(cycle).Named("INGREDIENTS"), biosculptee.Named("DOWNED"), cycle.Props.label.Named("CYCLE")), parent, MessageTypeDefOf.SilentInput, historical: false); + } + else + { + Messages.Message("BiosculpterLoadingStartedMessage".Translate(hauler.Named("PAWN"), IngredientsDescription(cycle).Named("INGREDIENTS"), cycle.Props.label.Named("CYCLE")), parent, MessageTypeDefOf.SilentInput, historical: false); + } + } + if (hauler.jobs.TryTakeOrderedJob(job, JobTag.Misc)) + { + SetQueuedInformation(job, biosculptee); + } + } + }); + } + + public void ClearQueuedInformation() + { + SetQueuedInformation(null, null); + } + + public void SetQueuedInformation(Job job, Pawn biosculptee) + { + queuedEnterJob = job; + queuedPawn = biosculptee; + } + + public bool CanAcceptNutrition(Thing thing) + { + return allowedNutritionSettings.AllowedToAccept(thing); + } + + public bool CanAcceptOnceCycleChosen(Pawn pawn) + { + if (State != BiosculpterPodState.SelectingCycle || !PowerOn) + { + return false; + } + if (biotunedTo != null && biotunedTo != pawn) + { + return false; + } + return true; + } + + public bool PawnCarryingExtraCycleIngredients(Pawn pawn, string cycleKey, bool remove = false) + { + return PawnCarryingExtraCycleIngredients(pawn, GetCycle(cycleKey), remove); + } + + public bool PawnCarryingExtraCycleIngredients(Pawn pawn, CompBiosculpterPod_Cycle cycle, bool remove = false) + { + if (cycle.Props.extraRequiredIngredients.NullOrEmpty() || devFillPodLatch) + { + return true; + } + foreach (ThingDefCountClass extraRequiredIngredient in cycle.Props.extraRequiredIngredients) + { + if (pawn.inventory.Count(extraRequiredIngredient.thingDef) < extraRequiredIngredient.count) + { + return false; + } + } + if (remove) + { + foreach (ThingDefCountClass extraRequiredIngredient2 in cycle.Props.extraRequiredIngredients) + { + pawn.inventory.RemoveCount(extraRequiredIngredient2.thingDef, extraRequiredIngredient2.count); + } + } + return true; + } + + public bool TryAcceptPawn(Pawn pawn, string cycleKey) + { + return TryAcceptPawn(pawn, GetCycle(cycleKey)); + } + + public bool TryAcceptPawn(Pawn pawn, CompBiosculpterPod_Cycle cycle) + { + if (!CanAcceptOnceCycleChosen(pawn)) + { + return false; + } + if (!PawnCarryingExtraCycleIngredients(pawn, cycle, remove: true)) + { + return false; + } + currentCycleKey = cycle.Props.key; + innerContainer.ClearAndDestroyContents(); + pawnEnteringBiosculpter = pawn; + bool num = pawn.DeSpawnOrDeselect(); + if (pawn.holdingOwner != null) + { + pawn.holdingOwner.TryTransferToContainer(pawn, innerContainer); + } + else + { + innerContainer.TryAdd(pawn); + } + if (num) + { + Find.Selector.Select(pawn, playSound: false, forceDesignatorDeselect: false); + } + pawnEnteringBiosculpter = null; + currentCycleTicksRemaining = cycle.Props.durationDays * 60000f; + liquifiedNutrition = 0f; + devFillPodLatch = false; + ClearQueuedInformation(); + tickEntered = Find.TickManager.TicksGame; + return true; + } + + public void EjectContents(bool interrupted, bool playSounds, Map destMap = null) + { + if (destMap == null) + { + destMap = parent.Map; + } + Pawn occupant = Occupant; + currentCycleKey = null; + currentCycleTicksRemaining = 0f; + currentCyclePowerCutTicks = 0; + liquifiedNutrition = 0f; + devFillPodLatch = false; + innerContainer.TryDropAll(parent.InteractionCell, destMap, ThingPlaceMode.Near); + if (occupant != null) + { + FilthMaker.TryMakeFilth(parent.InteractionCell, destMap, ThingDefOf.Filth_PodSlime, new IntRange(3, 6).RandomInRange); + if (interrupted) + { + occupant.needs?.mood.thoughts.memories.TryGainMemory(ThoughtDefOf.SoakingWet); + occupant.health?.AddHediff(HediffDefOf.BiosculptingSickness); + } + } + if (playSounds) + { + Props.exitSound?.PlayOneShot(SoundInfo.InMap(new TargetInfo(parent.Position, parent.Map))); + } + } + + private void CycleCompleted() + { + Pawn occupant = Occupant; + CompBiosculpterPod_Cycle currentCycle = CurrentCycle; + SetBiotuned(occupant); + currentCycle.CycleCompleted(occupant); + EjectContents(interrupted: false, playSounds: true); + if (occupant != null) + { + Need_Food need_Food = occupant.needs?.food; + if (need_Food != null) + { + need_Food.CurLevelPercentage = 1f; + } + Need_Rest need_Rest = occupant.needs?.rest; + if (need_Rest != null) + { + need_Rest.CurLevelPercentage = 1f; + } + if (currentCycle.Props.gainThoughtOnCompletion != null) + { + occupant.needs?.mood?.thoughts.memories.TryGainMemory(ThoughtDefOf.AgeReversalReceived); + } + Find.HistoryEventsManager.RecordEvent(new HistoryEvent(HistoryEventDefOf.UsedBiosculpterPod, occupant.Named(HistoryEventArgsNames.Doer))); + } + if (tickEntered > 0) + { + occupant.drugs.Notify_LeftSuspension(Find.TickManager.TicksGame - tickEntered); + } + } + + private void LiquifyNutrition() + { + tmpItems.AddRange(innerContainer); + foreach (Thing tmpItem in tmpItems) + { + float num = tmpItem.GetStatValue(StatDefOf.Nutrition) * (float)tmpItem.stackCount; + if (!(num <= 0f) && !(tmpItem is Pawn)) + { + liquifiedNutrition = Mathf.Min(5f, liquifiedNutrition + num); + tmpItem.Destroy(); + } + } + tmpItems.Clear(); + } + + public override void CompTick() + { + if (!ModLister.CheckIdeology("Biosculpting")) + { + return; + } + base.CompTick(); + if (State != BiosculpterPodState.SelectingCycle || !PowerOn) + { + readyEffecter?.Cleanup(); + readyEffecter = null; + } + else if (Props.readyEffecter != null) + { + if (readyEffecter == null) + { + readyEffecter = Props.readyEffecter.Spawn(); + ColorizeEffecter(readyEffecter, Props.selectCycleColor); + readyEffecter.Trigger(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + readyEffecter.EffectTick(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + if (State != BiosculpterPodState.Occupied) + { + progressBarEffecter?.Cleanup(); + progressBarEffecter = null; + operatingEffecter?.Cleanup(); + operatingEffecter = null; + } + else + { + Pawn occupant = Occupant; + biotunedCountdownTicks = 4800000; + if (PowerOn) + { + int num = 1; + currentCycleTicksRemaining -= (float)num * CycleSpeedFactor; + if (currentCycleTicksRemaining <= 0f) + { + CycleCompleted(); + } + } + else + { + currentCyclePowerCutTicks++; + if (currentCyclePowerCutTicks >= 60000) + { + EjectContents(interrupted: true, playSounds: true); + Messages.Message("BiosculpterNoPowerEjectedMessage".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.NegativeEvent, historical: false); + } + } + if (currentCycleTicksRemaining > 0f) + { + if (progressBarEffecter == null) + { + progressBarEffecter = EffecterDefOf.ProgressBar.Spawn(); + } + progressBarEffecter.EffectTick(parent, TargetInfo.Invalid); + MoteProgressBar moteProgressBar = (progressBarEffecter.children[0] as SubEffecter_ProgressBar)?.mote; + if (moteProgressBar != null) + { + float num2 = CurrentCycle.Props.durationDays * 60000f; + moteProgressBar.progress = 1f - Mathf.Clamp01(currentCycleTicksRemaining / num2); + int num3 = (parent.RotatedSize.z - 1) / 2; + moteProgressBar.offsetZ = 0f - ((float)num3 + 0.5f); + } + if (Props.operatingEffecter != null) + { + if (!PowerOn) + { + operatingEffecter?.Cleanup(); + operatingEffecter = null; + } + else + { + if (operatingEffecter == null) + { + operatingEffecter = Props.operatingEffecter.Spawn(); + ColorizeEffecter(operatingEffecter, CurrentCycle.Props.operatingColor); + operatingEffecter.Trigger(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + operatingEffecter.EffectTick(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + } + } + } + if (PowerOn && biotunedCountdownTicks > 0) + { + biotunedCountdownTicks--; + } + if (biotunedCountdownTicks <= 0) + { + SetBiotuned(null); + } + SetPower(); + if (biotunedTo?.Ideo != null && !biotunedTo.Ideo.HasPrecept(PreceptDefOf.AgeReversal_Demanded)) + { + autoAgeReversal = false; + } + } + + private void SetPower() + { + if (powerTraderComp == null) + { + powerTraderComp = parent.TryGetComp(); + } + if (powerComp == null) + { + powerComp = parent.TryGetComp(); + } + if (State == BiosculpterPodState.Occupied) + { + powerTraderComp.PowerOutput = 0f - powerComp.Props.PowerConsumption; + } + else + { + powerTraderComp.PowerOutput = 0f - powerComp.Props.idlePowerDraw; + } + } + + private void ColorizeEffecter(Effecter effecter, Color color) + { + foreach (SubEffecter child in effecter.children) + { + if (child is SubEffecter_Sprayer subEffecter_Sprayer) + { + subEffecter_Sprayer.colorOverride = color * child.def.color; + } + } + } + + public override void PostDraw() + { + base.PostDraw(); + Rot4 rotation = parent.Rotation; + Vector3 s = new Vector3(parent.def.graphicData.drawSize.x * 0.8f, 1f, parent.def.graphicData.drawSize.y * 0.8f); + Vector3 drawPos = parent.DrawPos; + drawPos.y -= 0.07317074f; + Graphics.DrawMesh(MeshPool.plane10, Matrix4x4.TRS(drawPos, rotation.AsQuat, s), BackgroundMat, 0); + if (State == BiosculpterPodState.Occupied) + { + Pawn occupant = Occupant; + Vector3 drawLoc = parent.DrawPos + FloatingOffset(currentCycleTicksRemaining + (float)currentCyclePowerCutTicks); + Rot4 rotation2 = parent.Rotation; + if (rotation2 == Rot4.East || rotation2 == Rot4.West) + { + drawLoc.z += 0.2f; + } + occupant.Drawer.renderer.RenderPawnAt(drawLoc, null, neverAimWeapon: true); + } + } + + public static Vector3 FloatingOffset(float tickOffset) + { + float num = tickOffset % 500f / 500f; + float num2 = Mathf.Sin(MathF.PI * num); + float z = num2 * num2 * 0.04f; + return new Vector3(0f, 0f, z); + } + + public void GetChildHolders(List outChildren) + { + ThingOwnerUtility.AppendThingHoldersFromThings(outChildren, GetDirectlyHeldThings()); + } + + public ThingOwner GetDirectlyHeldThings() + { + return innerContainer; + } + + public StorageSettings GetStoreSettings() + { + return allowedNutritionSettings; + } + + public StorageSettings GetParentStoreSettings() + { + return parent.def.building.fixedStorageSettings; + } + + public void Notify_SettingsChanged() + { + } + + private static void OrderToPod(CompBiosculpterPod_Cycle cycle, Pawn pawn, Action giveJobAct) + { + if (cycle is CompBiosculpterPod_HealingCycle compBiosculpterPod_HealingCycle) + { + string healingDescriptionForPawn = compBiosculpterPod_HealingCycle.GetHealingDescriptionForPawn(pawn); + string text = (healingDescriptionForPawn.NullOrEmpty() ? "BiosculpterNoCoditionsToHeal".Translate(pawn.Named("PAWN"), compBiosculpterPod_HealingCycle.Props.label.Named("CYCLE")).Resolve() : ("OnCompletionOfCycle".Translate(compBiosculpterPod_HealingCycle.Props.label.Named("CYCLE")).Resolve() + ":\n\n" + healingDescriptionForPawn)); + Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation(text, giveJobAct, healingDescriptionForPawn.NullOrEmpty())); + } + else + { + giveJobAct(); + } + } + + public static Thing FindPodFor(Pawn pawn, Pawn traveller, bool biotuned) + { + if (cachedPodDefs.NullOrEmpty()) + { + cachedPodDefs = DefDatabase.AllDefs.Where((ThingDef def) => def.GetCompProperties() != null).ToList(); + } + foreach (ThingDef cachedPodDef in cachedPodDefs) + { + Thing thing = GenClosest.ClosestThingReachable(traveller.Position, pawn.Map, ThingRequest.ForDef(cachedPodDef), PathEndMode.InteractionCell, TraverseParms.For(pawn), 9999f, Validator); + if (thing != null) + { + return thing; + } + } + return null; + bool Validator(Thing t) + { + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (biotuned && compBiosculpterPod.biotunedTo != traveller) + { + return false; + } + return compBiosculpterPod.CanAcceptOnceCycleChosen(traveller); + } + } + + public static bool WasLoadingCanceled(Thing thing) + { + CompBiosculpterPod compBiosculpterPod = thing.TryGetComp(); + if (compBiosculpterPod != null && compBiosculpterPod.State != 0) + { + return true; + } + return false; + } + + public void ClearCycle() + { + currentCycleKey = null; + } + + public void Notify_HauledTo(Pawn hauler, Thing thing, int count) + { + LiquifyNutrition(); + SoundDefOf.Standard_Drop.PlayOneShot(parent); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompBiosculpterPod_Cycle.txt` +**相似度:** 0.7210 + +```csharp +public abstract class CompBiosculpterPod_Cycle : ThingComp +{ + private List tmpMissingResearchLabels = new List(); + + public CompProperties_BiosculpterPod_BaseCycle Props => (CompProperties_BiosculpterPod_BaseCycle)props; + + public abstract void CycleCompleted(Pawn occupant); + + public virtual string Description(Pawn tunedFor) + { + return Props.description; + } + + public List MissingResearchLabels() + { + tmpMissingResearchLabels.Clear(); + if (Props.requiredResearch.NullOrEmpty()) + { + return tmpMissingResearchLabels; + } + foreach (ResearchProjectDef item in Props.requiredResearch) + { + if (!item.IsFinished) + { + tmpMissingResearchLabels.Add(item.LabelCap); + } + } + return tmpMissingResearchLabels; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_HaulToBiosculpterPod.txt` +**相似度:** 0.7198 + +```csharp +public class WorkGiver_HaulToBiosculpterPod : WorkGiver_Scanner +{ + public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForDef(ThingDefOf.BiosculpterPod); + + public override PathEndMode PathEndMode => PathEndMode.Touch; + + public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (!ModLister.CheckIdeology("Biosculpting")) + { + return false; + } + if (!pawn.CanReserve(t, 1, -1, null, forced)) + { + return false; + } + if (pawn.Map.designationManager.DesignationOn(t, DesignationDefOf.Deconstruct) != null) + { + return false; + } + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (compBiosculpterPod == null || !compBiosculpterPod.PowerOn || compBiosculpterPod.State != 0 || (!forced && !compBiosculpterPod.autoLoadNutrition)) + { + return false; + } + if (t.IsBurning()) + { + return false; + } + if (compBiosculpterPod.RequiredNutritionRemaining > 0f) + { + if (FindNutrition(pawn, compBiosculpterPod).Thing == null) + { + JobFailReason.Is("NoFood".Translate()); + return false; + } + return true; + } + return false; + } + + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (compBiosculpterPod == null) + { + return null; + } + if (compBiosculpterPod.RequiredNutritionRemaining > 0f) + { + ThingCount thingCount = FindNutrition(pawn, compBiosculpterPod); + if (thingCount.Thing != null) + { + Job job = HaulAIUtility.HaulToContainerJob(pawn, thingCount.Thing, t); + job.count = Mathf.Min(job.count, thingCount.Count); + return job; + } + } + return null; + } + + private ThingCount FindNutrition(Pawn pawn, CompBiosculpterPod pod) + { + Thing thing = GenClosest.ClosestThingReachable(pawn.Position, pawn.Map, ThingRequest.ForGroup(ThingRequestGroup.FoodSourceNotPlantOrTree), PathEndMode.ClosestTouch, TraverseParms.For(pawn), 9999f, Validator); + if (thing == null) + { + return default(ThingCount); + } + int b = Mathf.CeilToInt(pod.RequiredNutritionRemaining / thing.GetStatValue(StatDefOf.Nutrition)); + return new ThingCount(thing, Mathf.Min(thing.stackCount, b)); + bool Validator(Thing x) + { + if (x.IsForbidden(pawn) || !pawn.CanReserve(x)) + { + return false; + } + if (!pod.CanAcceptNutrition(x)) + { + return false; + } + return true; + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/BiosculpterPod.txt b/MCP/vector_cache/BiosculpterPod.txt new file mode 100644 index 00000000..db82d121 --- /dev/null +++ b/MCP/vector_cache/BiosculpterPod.txt @@ -0,0 +1,74 @@ +根据向量相似度分析,与 'BiosculpterPod' 最相关的代码定义如下: + +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_BaseCycle.txt` +**相似度:** 0.6754 + +```csharp +public abstract class CompProperties_BiosculpterPod_BaseCycle : CompProperties +{ + [NoTranslate] + public string key; + + [MustTranslate] + public string label; + + [MustTranslate] + public string description; + + [NoTranslate] + public string iconPath; + + public float durationDays; + + public Color operatingColor = new Color(0.5f, 0.7f, 0.5f); + + public ThoughtDef gainThoughtOnCompletion; + + public List requiredResearch; + + public List extraRequiredIngredients; + + private Texture2D icon; + + public Texture2D Icon + { + get + { + if (icon == null) + { + icon = ContentFinder.Get(iconPath); + } + return icon; + } + } + + public string LabelCap => label.CapitalizeFirst(); +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_PleasureCycle.txt` +**相似度:** 0.6624 + +```csharp +public class CompProperties_BiosculpterPod_PleasureCycle : CompProperties_BiosculpterPod_BaseCycle +{ + public CompProperties_BiosculpterPod_PleasureCycle() + { + compClass = typeof(CompBiosculpterPod_PleasureCycle); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_AgeReversalCycle.txt` +**相似度:** 0.6461 + +```csharp +public class CompProperties_BiosculpterPod_AgeReversalCycle : CompProperties_BiosculpterPod_BaseCycle +{ + public CompProperties_BiosculpterPod_AgeReversalCycle() + { + compClass = typeof(CompBiosculpterPod_AgeReversalCycle); + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/Building_Bed.txt b/MCP/vector_cache/Building_Bed.txt new file mode 100644 index 00000000..10294a2c --- /dev/null +++ b/MCP/vector_cache/Building_Bed.txt @@ -0,0 +1,1122 @@ +根据向量相似度分析,与 'Building_Bed' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\Building_Bed.txt` + +```csharp +public class Building_Bed : Building +{ + private BedOwnerType forOwnerType; + + private bool medicalInt; + + private bool alreadySetDefaultMed; + + private static int lastBedOwnerSetChangeFrame = -1; + + private static List tmpOrderedInteractionCells = new List(8); + + private static readonly Color SheetColorNormal = new Color(0.6313726f, 71f / 85f, 0.7058824f); + + private static readonly Color SheetColorRoyal = new Color(57f / 85f, 0.9137255f, 38f / 51f); + + public static readonly Color SheetColorForPrisoner = new Color(1f, 61f / 85f, 11f / 85f); + + private static readonly Color SheetColorMedical = new Color(33f / 85f, 53f / 85f, 0.8862745f); + + private static readonly Color SheetColorMedicalForPrisoner = new Color(0.654902f, 32f / 85f, 13f / 85f); + + private static readonly Color SheetColorForSlave = new Color32(252, 244, 3, byte.MaxValue); + + private static readonly Color SheetColorMedicalForSlave = new Color32(153, 148, 0, byte.MaxValue); + + private static readonly BedInteractionCellSearchPattern defaultBedInteractionCellsOrder = new BedInteractionCellSearchPattern(); + + public List OwnersForReading => CompAssignableToPawn.AssignedPawnsForReading; + + public CompAssignableToPawn CompAssignableToPawn => GetComp(); + + public bool ForPrisoners + { + get + { + return forOwnerType == BedOwnerType.Prisoner; + } + set + { + if (value == ForPrisoners || !def.building.bed_humanlike || ForHumanBabies) + { + return; + } + if (Current.ProgramState != ProgramState.Playing && Scribe.mode != 0) + { + Log.Error("Tried to set ForPrisoners while game mode was " + Current.ProgramState); + return; + } + RemoveAllOwners(); + if (value) + { + forOwnerType = BedOwnerType.Prisoner; + } + else + { + forOwnerType = BedOwnerType.Colonist; + Log.Error("Bed ForPrisoners=false, but should it be for for colonists or slaves? Set ForOwnerType instead."); + } + Notify_ColorChanged(); + NotifyRoomBedTypeChanged(); + } + } + + public bool ForSlaves => ForOwnerType == BedOwnerType.Slave; + + public bool ForColonists => ForOwnerType == BedOwnerType.Colonist; + + public bool ForHumanBabies + { + get + { + if (def.building.bed_humanlike) + { + return def.building.bed_maxBodySize < LifeStageDefOf.HumanlikeChild.bodySizeFactor; + } + return false; + } + } + + public BedOwnerType ForOwnerType + { + get + { + return forOwnerType; + } + set + { + if (value != forOwnerType && def.building.bed_humanlike && !ForHumanBabies && (value != BedOwnerType.Slave || ModLister.CheckIdeology("Slavery"))) + { + RemoveAllOwners(); + forOwnerType = value; + Notify_ColorChanged(); + NotifyRoomBedTypeChanged(); + } + } + } + + public bool Medical + { + get + { + return medicalInt; + } + set + { + if (value != medicalInt && (!value || def.building.bed_canBeMedical)) + { + RemoveAllOwners(); + medicalInt = value; + Notify_ColorChanged(); + if (base.Spawned) + { + base.Map.mapDrawer.MapMeshDirty(base.Position, MapMeshFlagDefOf.Things); + NotifyRoomBedTypeChanged(); + } + FacilityChanged(); + } + } + } + + public bool AnyUnownedSleepingSlot + { + get + { + if (Medical) + { + Log.Warning("Tried to check for unowned sleeping slot on medical bed " + this); + return false; + } + return CompAssignableToPawn.HasFreeSlot; + } + } + + public int TotalSleepingSlots + { + get + { + if (Medical) + { + Log.Warning("Tried to check for total sleeping slots on medical bed " + this); + return 0; + } + return CompAssignableToPawn.TotalSlots; + } + } + + public bool AnyUnoccupiedSleepingSlot + { + get + { + for (int i = 0; i < SleepingSlotsCount; i++) + { + if (GetCurOccupant(i) == null) + { + return true; + } + } + return false; + } + } + + public IEnumerable CurOccupants + { + get + { + for (int i = 0; i < SleepingSlotsCount; i++) + { + Pawn curOccupant = GetCurOccupant(i); + if (curOccupant != null) + { + yield return curOccupant; + } + } + } + } + + public bool AnyOccupants + { + get + { + for (int i = 0; i < SleepingSlotsCount; i++) + { + if (GetCurOccupant(i) != null) + { + return true; + } + } + return false; + } + } + + public override Color DrawColor + { + get + { + if (def.MadeFromStuff) + { + return base.DrawColor; + } + return DrawColorTwo; + } + } + + public override Color DrawColorTwo + { + get + { + if (def.building != null && !def.building.bed_UseSheetColor) + { + return base.DrawColorTwo; + } + bool medical = Medical; + switch (forOwnerType) + { + case BedOwnerType.Prisoner: + if (!medical) + { + return SheetColorForPrisoner; + } + return SheetColorMedicalForPrisoner; + case BedOwnerType.Slave: + if (!medical) + { + return SheetColorForSlave; + } + return SheetColorMedicalForSlave; + default: + if (medical) + { + return SheetColorMedical; + } + if (def == ThingDefOf.RoyalBed) + { + return SheetColorRoyal; + } + return SheetColorNormal; + } + } + } + + public int SleepingSlotsCount => BedUtility.GetSleepingSlotsCount(def.size); + + private bool PlayerCanSeeOwners => CompAssignableToPawn.PlayerCanSeeAssignments; + + public override IntVec3 InteractionCell => FindPreferredInteractionCell(base.Position) ?? base.InteractionCell; + + public override void SpawnSetup(Map map, bool respawningAfterLoad) + { + base.SpawnSetup(map, respawningAfterLoad); + Region validRegionAt_NoRebuild = map.regionGrid.GetValidRegionAt_NoRebuild(base.Position); + if (validRegionAt_NoRebuild != null && validRegionAt_NoRebuild.Room.IsPrisonCell) + { + ForPrisoners = true; + } + if (!alreadySetDefaultMed) + { + alreadySetDefaultMed = true; + if (def.building.bed_defaultMedical) + { + Medical = true; + } + } + if (!respawningAfterLoad) + { + District district = this.GetDistrict(); + if (district != null) + { + district.Notify_RoomShapeOrContainedBedsChanged(); + district.Room.Notify_RoomShapeChanged(); + } + } + } + + public override void DeSpawn(DestroyMode mode = DestroyMode.Vanish) + { + if (mode != DestroyMode.WillReplace) + { + if (mode != 0) + { + RemoveAllOwners(mode == DestroyMode.KillFinalize); + } + else if (InstallBlueprintUtility.ExistingBlueprintFor(this) == null) + { + foreach (Pawn item in OwnersForReading) + { + Messages.Message("MessageBedLostAssignment".Translate(def, item), new LookTargets(this, item), MessageTypeDefOf.CautionInput, historical: false); + } + } + ForOwnerType = BedOwnerType.Colonist; + Medical = false; + alreadySetDefaultMed = false; + } + District district = this.GetDistrict(); + base.DeSpawn(mode); + if (district != null) + { + district.Notify_RoomShapeOrContainedBedsChanged(); + district.Room.Notify_RoomShapeChanged(); + } + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref medicalInt, "medical", defaultValue: false); + Scribe_Values.Look(ref alreadySetDefaultMed, "alreadySetDefaultMed", defaultValue: false); + Scribe_Values.Look(ref forOwnerType, "forOwnerType", BedOwnerType.Colonist); + BackCompatibility.PostExposeData(this); + } + + public override void DrawExtraSelectionOverlays() + { + base.DrawExtraSelectionOverlays(); + Room room = this.GetRoom(); + if (room != null && RoomCanBePrisonCell(room)) + { + room.DrawFieldEdges(); + } + } + + public static bool RoomCanBePrisonCell(Room r) + { + if (r.ProperRoom) + { + return !r.IsHuge; + } + return false; + } + + public override IEnumerable GetGizmos() + { + foreach (Gizmo gizmo in base.GetGizmos()) + { + yield return gizmo; + } + if (base.Faction != Faction.OfPlayer) + { + yield break; + } + if (def.building.bed_humanlike && !ForHumanBabies) + { + if (ModsConfig.IdeologyActive) + { + yield return new Command_SetBedOwnerType(this); + } + else + { + Command_Toggle command_Toggle = new Command_Toggle(); + command_Toggle.defaultLabel = "CommandBedSetForPrisonersLabel".Translate(); + command_Toggle.defaultDesc = "CommandBedSetForPrisonersDesc".Translate(); + command_Toggle.icon = ContentFinder.Get("UI/Commands/ForPrisoners"); + command_Toggle.isActive = () => ForPrisoners; + command_Toggle.toggleAction = delegate + { + SetBedOwnerTypeByInterface((!ForPrisoners) ? BedOwnerType.Prisoner : BedOwnerType.Colonist); + }; + if (!RoomCanBePrisonCell(this.GetRoom()) && !ForPrisoners) + { + command_Toggle.Disable("CommandBedSetForPrisonersFailOutdoors".Translate()); + } + command_Toggle.hotKey = KeyBindingDefOf.Misc3; + command_Toggle.turnOffSound = null; + command_Toggle.turnOnSound = null; + yield return command_Toggle; + } + } + if (def.building.bed_canBeMedical) + { + Command_Toggle command_Toggle2 = new Command_Toggle(); + command_Toggle2.defaultLabel = "CommandBedSetAsMedicalLabel".Translate(); + command_Toggle2.defaultDesc = "CommandBedSetAsMedicalDesc".Translate(); + command_Toggle2.icon = ContentFinder.Get("UI/Commands/AsMedical"); + command_Toggle2.isActive = () => Medical; + command_Toggle2.toggleAction = delegate + { + Medical = !Medical; + }; + command_Toggle2.hotKey = KeyBindingDefOf.Misc2; + yield return command_Toggle2; + } + } + + public void SetBedOwnerTypeByInterface(BedOwnerType ownerType) + { + if (lastBedOwnerSetChangeFrame == Time.frameCount) + { + return; + } + lastBedOwnerSetChangeFrame = Time.frameCount; + ((ForOwnerType != ownerType) ? SoundDefOf.Checkbox_TurnedOn : SoundDefOf.Checkbox_TurnedOff).PlayOneShotOnCamera(); + List bedsToAffect = new List(); + foreach (Building_Bed item in Find.Selector.SelectedObjects.OfType()) + { + if (item.ForOwnerType == ownerType) + { + continue; + } + Room room = item.GetRoom(); + if (room == null && ownerType != BedOwnerType.Prisoner) + { + if (!bedsToAffect.Contains(item)) + { + bedsToAffect.Add(item); + } + continue; + } + foreach (Building_Bed containedBed in room.ContainedBeds) + { + if (containedBed.ForOwnerType != ownerType) + { + if (containedBed.ForOwnerType == BedOwnerType.Prisoner && !bedsToAffect.Contains(containedBed)) + { + bedsToAffect.Add(containedBed); + } + else if (ownerType == BedOwnerType.Prisoner && RoomCanBePrisonCell(room) && !bedsToAffect.Contains(containedBed)) + { + bedsToAffect.Add(containedBed); + } + else if (containedBed == item && !bedsToAffect.Contains(containedBed)) + { + bedsToAffect.Add(containedBed); + } + } + } + } + Action action = delegate + { + List list = new List(); + List list2 = new List(); + foreach (Building_Bed item2 in bedsToAffect) + { + District district = item2.GetDistrict(); + Room room2 = district.Room; + if (ownerType == BedOwnerType.Prisoner && room2.TouchesMapEdge) + { + item2.ForOwnerType = BedOwnerType.Colonist; + } + else + { + item2.ForOwnerType = ownerType; + } + if (!room2.TouchesMapEdge) + { + if (!list2.Contains(room2)) + { + list2.Add(room2); + } + if (!list.Contains(district)) + { + list.Add(district); + } + } + } + foreach (District item3 in list) + { + item3.Notify_RoomShapeOrContainedBedsChanged(); + } + foreach (Room item4 in list2) + { + item4.Notify_RoomShapeChanged(); + } + }; + if (bedsToAffect.Where((Building_Bed b) => b.OwnersForReading.Any((Pawn owner) => owner.RaceProps.Humanlike) && b != this).Count() == 0) + { + action(); + return; + } + StringBuilder stringBuilder = new StringBuilder(); + if (!ModsConfig.IdeologyActive) + { + if (ownerType == BedOwnerType.Prisoner) + { + stringBuilder.Append("TurningOnPrisonerBedWarning".Translate()); + } + else + { + stringBuilder.Append("TurningOffPrisonerBedWarning".Translate()); + } + } + else + { + stringBuilder.Append("ChangingOwnerTypeBedWarning".Translate()); + } + stringBuilder.AppendLine(); + foreach (Building_Bed item5 in bedsToAffect) + { + if (ownerType != item5.ForOwnerType) + { + for (int i = 0; i < item5.OwnersForReading.Count; i++) + { + stringBuilder.AppendLine(); + stringBuilder.Append(item5.OwnersForReading[i].LabelShort); + } + } + } + stringBuilder.AppendLine(); + stringBuilder.AppendLine(); + stringBuilder.Append("AreYouSure".Translate()); + Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation(stringBuilder.ToString(), action)); + } + + public override string GetInspectString() + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(base.GetInspectString()); + if (def.building.bed_humanlike && def.building.bed_DisplayOwnerType && base.Faction == Faction.OfPlayer) + { + switch (ForOwnerType) + { + case BedOwnerType.Prisoner: + stringBuilder.AppendInNewLine("ForPrisonerUse".Translate()); + break; + case BedOwnerType.Slave: + stringBuilder.AppendInNewLine("ForSlaveUse".Translate()); + break; + case BedOwnerType.Colonist: + stringBuilder.AppendInNewLine("ForColonistUse".Translate()); + break; + default: + Log.Error($"Unknown bed owner type: {ForOwnerType}"); + break; + } + } + if (Medical) + { + stringBuilder.AppendInNewLine("MedicalBed".Translate()); + if (base.Spawned) + { + stringBuilder.AppendInNewLine("RoomInfectionChanceFactor".Translate() + ": " + this.GetRoom().GetStat(RoomStatDefOf.InfectionChanceFactor).ToStringPercent()); + } + } + else if (PlayerCanSeeOwners && def.building.bed_DisplayOwnersInInspectString) + { + if (OwnersForReading.Count == 0) + { + stringBuilder.AppendInNewLine("Owner".Translate() + ": " + "Nobody".Translate()); + } + else if (OwnersForReading.Count == 1) + { + stringBuilder.AppendInNewLine("Owner".Translate() + ": " + OwnersForReading[0].Label); + } + else + { + stringBuilder.AppendInNewLine("Owners".Translate() + ": "); + bool flag = false; + for (int i = 0; i < OwnersForReading.Count; i++) + { + if (flag) + { + stringBuilder.Append(", "); + } + flag = true; + stringBuilder.Append(OwnersForReading[i].LabelShort); + } + } + if (OwnersForReading.Count == 1 && ChildcareUtility.CanSuckle(OwnersForReading[0], out var _)) + { + Pawn p = OwnersForReading[0]; + float ambientTemperature = base.AmbientTemperature; + if (!p.SafeTemperatureRange().IncludesEpsilon(ambientTemperature)) + { + stringBuilder.AppendInNewLine("BedUnsafeTemperature".Translate().Colorize(ColoredText.WarningColor)); + } + else if (!p.ComfortableTemperatureRange().IncludesEpsilon(ambientTemperature)) + { + stringBuilder.AppendInNewLine("BedUncomfortableTemperature".Translate()); + } + } + } + return stringBuilder.ToString(); + } + + public override IEnumerable GetFloatMenuOptions(Pawn myPawn) + { + FloatMenuOption bedRestFloatMenuOption = GetBedRestFloatMenuOption(myPawn); + if (bedRestFloatMenuOption != null) + { + yield return bedRestFloatMenuOption; + } + } + + public FloatMenuOption GetBedRestFloatMenuOption(Pawn myPawn) + { + if (myPawn.RaceProps.Humanlike && !ForPrisoners && Medical && !myPawn.Drafted && base.Faction == Faction.OfPlayer && RestUtility.CanUseBedEver(myPawn, def)) + { + if (!HealthAIUtility.ShouldSeekMedicalRest(myPawn)) + { + if (myPawn.health.surgeryBills.AnyShouldDoNow && !WorkGiver_PatientGoToBedTreatment.AnyAvailableDoctorFor(myPawn)) + { + return new FloatMenuOption("UseMedicalBed".Translate() + " (" + "NoDoctor".Translate() + ")", null); + } + return new FloatMenuOption("UseMedicalBed".Translate() + " (" + "NotInjured".Translate() + ")", null); + } + if (myPawn.IsSlaveOfColony && !ForSlaves) + { + return new FloatMenuOption("UseMedicalBed".Translate() + " (" + "NotForSlaves".Translate() + ")", null); + } + Action action = delegate + { + if (!ForPrisoners && Medical && myPawn.CanReserveAndReach(this, PathEndMode.ClosestTouch, Danger.Deadly, SleepingSlotsCount, -1, null, ignoreOtherReservations: true)) + { + if (myPawn.CurJobDef == JobDefOf.LayDown && myPawn.CurJob.GetTarget(TargetIndex.A).Thing == this) + { + myPawn.CurJob.restUntilHealed = true; + } + else + { + Job job = JobMaker.MakeJob(JobDefOf.LayDown, this); + job.restUntilHealed = true; + myPawn.jobs.TryTakeOrderedJob(job, JobTag.Misc); + } + myPawn.mindState.ResetLastDisturbanceTick(); + } + }; + return FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption("UseMedicalBed".Translate(), action), myPawn, this, (AnyUnoccupiedSleepingSlot ? "ReservedBy" : "SomeoneElseSleeping").CapitalizeFirst()); + } + return null; + } + + public override void DrawGUIOverlay() + { + if (Medical || Find.CameraDriver.CurrentZoom != 0 || !PlayerCanSeeOwners) + { + return; + } + Color defaultThingLabelColor = GenMapUI.DefaultThingLabelColor; + if (!OwnersForReading.Any()) + { + GenMapUI.DrawThingLabel(this, "Unowned".Translate(), defaultThingLabelColor); + return; + } + if (OwnersForReading.Count == 1) + { + Pawn pawn = OwnersForReading[0]; + if ((!pawn.InBed() || pawn.CurrentBed() != this) && (!pawn.RaceProps.Animal || Prefs.AnimalNameMode.ShouldDisplayAnimalName(pawn))) + { + GenMapUI.DrawThingLabel(this, pawn.LabelShort, defaultThingLabelColor); + } + return; + } + for (int i = 0; i < OwnersForReading.Count; i++) + { + Pawn pawn2 = OwnersForReading[i]; + if (!pawn2.InBed() || OwnersForReading[i].CurrentBed() != this || !(pawn2.Position == GetSleepingSlotPos(i))) + { + if (pawn2.RaceProps.Animal && !Prefs.AnimalNameMode.ShouldDisplayAnimalName(pawn2)) + { + break; + } + GenMapUI.DrawThingLabel(GetMultiOwnersLabelScreenPosFor(i), pawn2.LabelShort, defaultThingLabelColor); + } + } + } + + public Pawn GetCurOccupant(int slotIndex) + { + if (!base.Spawned) + { + return null; + } + IntVec3 sleepingSlotPos = GetSleepingSlotPos(slotIndex); + List list = base.Map.thingGrid.ThingsListAt(sleepingSlotPos); + for (int i = 0; i < list.Count; i++) + { + if (list[i] is Pawn { CurJob: not null } pawn && pawn.GetPosture().InBed()) + { + return pawn; + } + } + return null; + } + + public int GetCurOccupantSlotIndex(Pawn curOccupant) + { + for (int i = 0; i < SleepingSlotsCount; i++) + { + if (GetCurOccupant(i) == curOccupant) + { + return i; + } + } + Log.Error("Could not find pawn " + curOccupant?.ToString() + " on any of sleeping slots."); + return 0; + } + + public Pawn GetCurOccupantAt(IntVec3 pos) + { + for (int i = 0; i < SleepingSlotsCount; i++) + { + if (GetSleepingSlotPos(i) == pos) + { + return GetCurOccupant(i); + } + } + return null; + } + + public IntVec3 GetSleepingSlotPos(int index) + { + return BedUtility.GetSleepingSlotPos(index, base.Position, base.Rotation, def.size); + } + + public IntVec3 GetFootSlotPos(int index) + { + return BedUtility.GetFeetSlotPos(index, base.Position, base.Rotation, def.size); + } + + public bool IsOwner(Pawn p) + { + int? assignedSleepingSlot; + return IsOwner(p, out assignedSleepingSlot); + } + + public bool IsOwner(Pawn p, out int? assignedSleepingSlot) + { + int num = GetComp().AssignedPawnsForReading.IndexOf(p); + if (num >= 0) + { + assignedSleepingSlot = num; + return true; + } + assignedSleepingSlot = null; + return false; + } + + private void RemoveAllOwners(bool destroyed = false) + { + for (int num = OwnersForReading.Count - 1; num >= 0; num--) + { + Pawn pawn = OwnersForReading[num]; + pawn.ownership.UnclaimBed(); + string key = "MessageBedLostAssignment"; + if (destroyed) + { + key = "MessageBedDestroyed"; + } + Messages.Message(key.Translate(def, pawn), new LookTargets(this, pawn), MessageTypeDefOf.CautionInput, historical: false); + } + } + + private void NotifyRoomBedTypeChanged() + { + this.GetRoom()?.Notify_BedTypeChanged(); + } + + public void NotifyRoomAssignedPawnsChanged() + { + this.GetRoom()?.Notify_BedTypeChanged(); + } + + private void FacilityChanged() + { + CompFacility compFacility = this.TryGetComp(); + CompAffectedByFacilities compAffectedByFacilities = this.TryGetComp(); + compFacility?.Notify_ThingChanged(); + compAffectedByFacilities?.Notify_ThingChanged(); + } + + private Vector3 GetMultiOwnersLabelScreenPosFor(int slotIndex) + { + IntVec3 sleepingSlotPos = GetSleepingSlotPos(slotIndex); + Vector3 drawPos = DrawPos; + if (base.Rotation.IsHorizontal) + { + drawPos.z = (float)sleepingSlotPos.z + 0.6f; + } + else + { + drawPos.x = (float)sleepingSlotPos.x + 0.5f; + drawPos.z += -0.4f; + } + Vector2 vector = drawPos.MapToUIPosition(); + if (!base.Rotation.IsHorizontal && SleepingSlotsCount == 2) + { + vector = AdjustOwnerLabelPosToAvoidOverlapping(vector, slotIndex); + } + return vector; + } + + private Vector3 AdjustOwnerLabelPosToAvoidOverlapping(Vector3 screenPos, int slotIndex) + { + Text.Font = GameFont.Tiny; + float num = Text.CalcSize(OwnersForReading[slotIndex].LabelShort).x + 1f; + Vector2 vector = DrawPos.MapToUIPosition(); + float num2 = Mathf.Abs(screenPos.x - vector.x); + IntVec3 sleepingSlotPos = GetSleepingSlotPos(slotIndex); + if (num > num2 * 2f) + { + float num3 = 0f; + num3 = ((slotIndex != 0) ? ((float)GetSleepingSlotPos(0).x) : ((float)GetSleepingSlotPos(1).x)); + if ((float)sleepingSlotPos.x < num3) + { + screenPos.x -= (num - num2 * 2f) / 2f; + } + else + { + screenPos.x += (num - num2 * 2f) / 2f; + } + } + return screenPos; + } + + private bool RemoveLeastDesirableInteractionCells(List cells, Map map) + { + cells.RemoveAll(map, (Map innerMap, IntVec3 cell) => !cell.Standable(innerMap) || !TouchPathEndModeUtility.IsAdjacentOrInsideAndAllowedToTouch(cell, new LocalTargetInfo(this), map.pathing.Normal)); + if (cells.RemoveAll_IfNotAll(map, delegate(Map innerMap, IntVec3 cell) + { + Building building = map.edificeGrid[cell]; + return building == null || building.def?.IsBed != true; + })) + { + return cells.RemoveAll_IfNotAll(map, (Map innerMap, IntVec3 cell) => cell.GetDoor(map) == null); + } + return false; + } + + public IntVec3? FindPreferredInteractionCell(IntVec3 occupantLocation, CellSearchPattern customSearchPattern = null) + { + CellRect cellRect = this.OccupiedRect(); + if (!cellRect.Contains(occupantLocation)) + { + Log.Error($"interiorLocation {occupantLocation} is not within the bounds of this bed {cellRect}."); + return null; + } + tmpOrderedInteractionCells.Clear(); + (customSearchPattern ?? defaultBedInteractionCellsOrder).AddCellsToList(tmpOrderedInteractionCells, this, cellRect, occupantLocation, base.Rotation); + RemoveLeastDesirableInteractionCells(tmpOrderedInteractionCells, base.Map); + if (tmpOrderedInteractionCells.Count == 0) + { + return null; + } + return tmpOrderedInteractionCells[0]; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\RoomRoleWorker_Bedroom.txt` +**相似度:** 0.5705 + +```csharp +public class RoomRoleWorker_Bedroom : RoomRoleWorker +{ + private static List tmpBeds = new List(); + + private static List children = new List(); + + private static List adults = new List(); + + public override float GetScore(Room room) + { + tmpBeds.Clear(); + List containedAndAdjacentThings = room.ContainedAndAdjacentThings; + int num = 0; + for (int i = 0; i < containedAndAdjacentThings.Count; i++) + { + if (containedAndAdjacentThings[i] is Building_Bed building_Bed && building_Bed.def.building.bed_humanlike && building_Bed.def.building.bed_countsForBedroomOrBarracks) + { + if (building_Bed.Medical || building_Bed.ForPrisoners) + { + tmpBeds.Clear(); + return 0f; + } + num++; + tmpBeds.Add(building_Bed); + } + } + if (num == 0) + { + tmpBeds.Clear(); + return 0f; + } + bool num2 = IsBedroom(tmpBeds); + tmpBeds.Clear(); + if (!num2) + { + return 0f; + } + return 100000f; + } + + public static bool IsBedroom(List beds) + { + children.Clear(); + adults.Clear(); + bool result = IsBedroomHelper(beds); + children.Clear(); + adults.Clear(); + return result; + } + + private static bool IsBedroomHelper(List beds) + { + List list = null; + int num = 0; + int num2 = 0; + int num3 = 0; + foreach (Building_Bed bed in beds) + { + List ownersForReading = bed.OwnersForReading; + if (ownersForReading.NullOrEmpty() && bed.def.building.bed_emptyCountsForBarracks) + { + num++; + continue; + } + if (ownersForReading.Count > 0) + { + num2++; + } + bool flag = false; + foreach (Pawn item in ownersForReading) + { + if (item.DevelopmentalStage.Juvenile()) + { + children.Add(item); + continue; + } + adults.Add(item); + if (list == null) + { + list = item.GetLoveCluster(); + } + if (!list.Contains(item)) + { + flag = true; + } + } + if (flag) + { + num3++; + } + } + if (num == 1 && num2 == 0) + { + return true; + } + if (num == 0 && num2 == 1) + { + return true; + } + if (num > 0) + { + return false; + } + if (adults.NullOrEmpty()) + { + return true; + } + if (num3 > 0) + { + return false; + } + foreach (Pawn child in children) + { + Pawn mother = child.GetMother(); + Pawn father = child.GetFather(); + if (!adults.Any((Pawn adult) => adult == mother || adult == father)) + { + return false; + } + } + return true; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\RoomRoleWorker_Barracks.txt` +**相似度:** 0.5548 + +```csharp +public class RoomRoleWorker_Barracks : RoomRoleWorker +{ + private static List tmpBeds = new List(); + + public override float GetScore(Room room) + { + tmpBeds.Clear(); + int num = 0; + List containedAndAdjacentThings = room.ContainedAndAdjacentThings; + for (int i = 0; i < containedAndAdjacentThings.Count; i++) + { + if (containedAndAdjacentThings[i] is Building_Bed building_Bed && building_Bed.def.building.bed_humanlike && building_Bed.def.building.bed_countsForBedroomOrBarracks) + { + if (building_Bed.ForPrisoners) + { + tmpBeds.Clear(); + return 0f; + } + tmpBeds.Add(building_Bed); + if (!building_Bed.Medical) + { + num++; + } + } + } + bool num2 = RoomRoleWorker_Bedroom.IsBedroom(tmpBeds); + tmpBeds.Clear(); + if (num2) + { + return 0f; + } + return (float)num * 100100f; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld.BaseGen\SymbolResolver_PrisonerBed.txt` +**相似度:** 0.5535 + +```csharp +public class SymbolResolver_PrisonerBed : SymbolResolver +{ + public override void Resolve(ResolveParams rp) + { + ResolveParams resolveParams = rp; + Action prevPostThingSpawn = resolveParams.postThingSpawn; + resolveParams.postThingSpawn = delegate(Thing x) + { + if (prevPostThingSpawn != null) + { + prevPostThingSpawn(x); + } + if (x is Building_Bed building_Bed) + { + building_Bed.ForPrisoners = true; + } + }; + BaseGen.symbolStack.Push("bed", resolveParams); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_TakeToBed.txt` +**相似度:** 0.5270 + +```csharp +public abstract class WorkGiver_TakeToBed : WorkGiver_Scanner +{ + protected Building_Bed FindBed(Pawn pawn, Pawn patient) + { + return RestUtility.FindBedFor(patient, pawn, checkSocialProperness: false, ignoreOtherReservations: false, patient.GuestStatus); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompAssignableToPawn_DeathrestCasket.txt` +**相似度:** 0.5238 + +```csharp +public class CompAssignableToPawn_DeathrestCasket : CompAssignableToPawn_Bed +{ + public override string CompInspectStringExtra() + { + return null; + } + + public override bool AssignedAnything(Pawn pawn) + { + return pawn.ownership.AssignedDeathrestCasket != null; + } + + public override void TryAssignPawn(Pawn pawn) + { + Building_Bed building_Bed = (Building_Bed)parent; + pawn.ownership.ClaimDeathrestCasket(building_Bed); + building_Bed.NotifyRoomAssignedPawnsChanged(); + } + + public override void TryUnassignPawn(Pawn pawn, bool sort = true, bool uninstall = false) + { + Building_Bed ownedBed = pawn.ownership.OwnedBed; + pawn.ownership.UnclaimDeathrestCasket(); + ownedBed?.NotifyRoomAssignedPawnsChanged(); + } + + public override AcceptanceReport CanAssignTo(Pawn pawn) + { + Building_Bed building_Bed = (Building_Bed)parent; + if (pawn.BodySize > building_Bed.def.building.bed_maxBodySize) + { + return "TooLargeForBed".Translate(); + } + if (building_Bed.ForSlaves && !pawn.IsSlave) + { + return "CannotAssignBedToColonist".Translate(); + } + if (building_Bed.ForColonists && pawn.IsSlave) + { + return "CannotAssignBedToSlave".Translate(); + } + CompDeathrestBindable compDeathrestBindable = parent.TryGetComp(); + if (compDeathrestBindable != null && compDeathrestBindable.BoundPawn != null && compDeathrestBindable.BoundPawn != pawn) + { + return "CannotAssignAlreadyBound".Translate(compDeathrestBindable.BoundPawn); + } + Gene_Deathrest gene_Deathrest = pawn.genes?.GetFirstGeneOfType(); + if (gene_Deathrest == null) + { + return "CannotAssignBedCannotDeathrest".Translate(); + } + if (compDeathrestBindable != null && gene_Deathrest.BindingWillExceedStackLimit(compDeathrestBindable)) + { + return "CannotAssignBedCannotBindToMoreBuildings".Translate(NamedArgumentUtility.Named(parent.def, "BUILDING")); + } + return AcceptanceReport.WasAccepted; + } + + protected override void PostPostExposeData() + { + if (Scribe.mode == LoadSaveMode.PostLoadInit && ModsConfig.BiotechActive && assignedPawns.RemoveAll((Pawn x) => x.ownership.AssignedDeathrestCasket != parent) > 0) + { + Log.Warning(parent.ToStringSafe() + " had pawns assigned that don't have it as an assigned bed. Removing."); + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/CarryToBiosculpterPod-JobDefOf-JobDriver_CarryToBiosculpterPod.txt b/MCP/vector_cache/CarryToBiosculpterPod-JobDefOf-JobDriver_CarryToBiosculpterPod.txt new file mode 100644 index 00000000..cbec2925 --- /dev/null +++ b/MCP/vector_cache/CarryToBiosculpterPod-JobDefOf-JobDriver_CarryToBiosculpterPod.txt @@ -0,0 +1,198 @@ +根据向量相似度分析,与 'JobDriver_CarryToBiosculpterPod, JobDefOf, CarryToBiosculpterPod' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_CarryToBiosculpterPod.txt` + +```csharp +public class JobDriver_CarryToBiosculpterPod : JobDriver +{ + private const TargetIndex TakeeInd = TargetIndex.A; + + private const TargetIndex IngredientInd = TargetIndex.B; + + private const TargetIndex PodInd = TargetIndex.C; + + private List pickedUpIngredients = new List(); + + private List thingsToTransfer = new List(); + + private Pawn Takee => (Pawn)job.GetTarget(TargetIndex.A).Thing; + + private CompBiosculpterPod Pod => job.GetTarget(TargetIndex.C).Thing.TryGetComp(); + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + if (!pawn.Reserve(Takee, job, 1, -1, null, errorOnFailed) || !pawn.Reserve(Pod.parent, job, 1, -1, null, errorOnFailed)) + { + return false; + } + List targetQueue = job.GetTargetQueue(TargetIndex.B); + for (int i = 0; i < targetQueue.Count; i++) + { + if (!pawn.Reserve(targetQueue[i], job, 1, -1, null, errorOnFailed)) + { + return false; + } + } + return true; + } + + protected override IEnumerable MakeNewToils() + { + if (!ModLister.CheckIdeology("Biosculpting")) + { + yield break; + } + AddFinishAction(delegate + { + if (Pod != null) + { + if (Pod.queuedEnterJob == job) + { + Pod.ClearQueuedInformation(); + } + if (Pod.Occupant != Takee) + { + foreach (Thing pickedUpIngredient in pickedUpIngredients) + { + Thing lastResultingThing; + if (pawn.inventory.Contains(pickedUpIngredient)) + { + pawn.inventory.innerContainer.TryDrop(pickedUpIngredient, ThingPlaceMode.Near, out lastResultingThing); + } + else if (Takee.inventory.Contains(pickedUpIngredient)) + { + Takee.inventory.innerContainer.TryDrop(pickedUpIngredient, ThingPlaceMode.Near, out lastResultingThing); + } + } + } + } + }); + this.FailOnDestroyedOrNull(TargetIndex.A); + this.FailOnDestroyedOrNull(TargetIndex.C); + this.FailOnAggroMentalState(TargetIndex.A); + this.FailOn(() => job.biosculpterCycleKey == null || !Pod.CanAcceptOnceCycleChosen(Takee)); + Toil goToTakee = Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.OnCell).FailOnDestroyedNullOrForbidden(TargetIndex.A).FailOnDespawnedNullOrForbidden(TargetIndex.C) + .FailOn(() => Takee.IsFreeColonist && !Takee.Downed) + .FailOnSomeonePhysicallyInteracting(TargetIndex.A); + Toil startCarryingTakee = Toils_Haul.StartCarryThing(TargetIndex.A); + Toil goToThing = Toils_Goto.GotoThing(TargetIndex.C, PathEndMode.InteractionCell); + Toil toil = Toils_Jump.JumpIf(goToThing, () => pawn.IsCarryingPawn(Takee) && job.GetTargetQueue(TargetIndex.B).NullOrEmpty()); + Toil jumpIfGoToTakee = Toils_Jump.JumpIf(goToTakee, () => job.GetTargetQueue(TargetIndex.B).NullOrEmpty()); + yield return toil; + yield return jumpIfGoToTakee; + yield return DropCarryToGrabIngredients(); + foreach (Toil item in JobDriver_EnterBiosculpterPod.CollectIngredientsToilsHelper(TargetIndex.B, pawn, pickedUpIngredients)) + { + yield return item; + } + yield return goToTakee; + yield return TransferIngredientsAndPrepareCarryDownedPawn(); + yield return startCarryingTakee; + yield return goToThing.FailOn(() => !Pod.PawnCarryingExtraCycleIngredients(Takee, job.biosculpterCycleKey)); + yield return JobDriver_EnterBiosculpterPod.PrepareToEnterToil(TargetIndex.C); + Toil toil2 = ToilMaker.MakeToil("MakeNewToils"); + toil2.initAction = delegate + { + Pod.TryAcceptPawn(Takee, job.biosculpterCycleKey); + }; + toil2.defaultCompleteMode = ToilCompleteMode.Instant; + yield return toil2; + } + + private Toil TransferIngredientsAndPrepareCarryDownedPawn() + { + Toil toil = ToilMaker.MakeToil("TransferIngredientsAndPrepareCarryDownedPawn"); + toil.initAction = delegate + { + List extraRequiredIngredients = Pod.GetCycle(job.biosculpterCycleKey).Props.extraRequiredIngredients; + if (extraRequiredIngredients != null && !Pod.devFillPodLatch) + { + ThingOwner innerContainer = pawn.inventory.innerContainer; + foreach (ThingDefCountClass item in extraRequiredIngredients) + { + if (Takee.inventory.Count(item.thingDef) < item.count) + { + if (pawn.inventory.Count(item.thingDef) < item.count) + { + EndJobWith(JobCondition.Incompletable); + return; + } + thingsToTransfer.Clear(); + int num = 0; + foreach (Thing item2 in innerContainer) + { + if (num >= item.count) + { + break; + } + if (item2.def == item.thingDef) + { + int num2 = Mathf.Min(item.count - num, item2.stackCount); + thingsToTransfer.Add(new ThingCount(item2, Mathf.Min(item.count - num, item2.stackCount))); + num += num2; + } + } + foreach (ThingCount item3 in thingsToTransfer) + { + int num3 = Takee.inventory.innerContainer.TryAddOrTransfer(item3.Thing, item3.Count); + if (num3 != item3.Count) + { + Log.Warning($"Only able to transfer x{num3} of the expected x{item3.Count} of {item3.Thing.Label} while CarryToBiosculpter"); + EndJobWith(JobCondition.Incompletable); + return; + } + } + } + } + } + job.count = 1; + }; + toil.defaultCompleteMode = ToilCompleteMode.Instant; + return toil; + } + + private Toil DropCarryToGrabIngredients() + { + Toil toil = ToilMaker.MakeToil("DropCarryToGrabIngredients"); + toil.initAction = delegate + { + if (pawn.carryTracker.CarriedThing != null) + { + pawn.carryTracker.TryDropCarriedThing(pawn.Position, ThingPlaceMode.Near, out var _); + } + }; + toil.defaultCompleteMode = ToilCompleteMode.Instant; + return toil; + } + + public override string GetReport() + { + if (!Pod.PawnCarryingExtraCycleIngredients(Takee, job.biosculpterCycleKey) && !Pod.PawnCarryingExtraCycleIngredients(pawn, job.biosculpterCycleKey)) + { + return "BiosculpterJobReportCollectIngredients".Translate(); + } + return base.GetReport(); + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Collections.Look(ref pickedUpIngredients, "pickedUpIngredients", LookMode.Reference); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Ideology\Defs\JobDefs\Jobs_Misc.xml` +**相似度:** 0.5483 + +```xml + CarryToBiosculpterPod + JobDriver_CarryToBiosculpterPod + carrying TargetA to biosculpter pod. + false + + + + RecolorApparel +``` \ No newline at end of file diff --git a/MCP/vector_cache/ColonistBarColonistDrawer-DrawIcons.txt b/MCP/vector_cache/ColonistBarColonistDrawer-DrawIcons.txt new file mode 100644 index 00000000..54867b4b --- /dev/null +++ b/MCP/vector_cache/ColonistBarColonistDrawer-DrawIcons.txt @@ -0,0 +1,985 @@ +根据向量相似度分析,与 'DrawIcons, ColonistBarColonistDrawer' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\ColonistBarColonistDrawer.txt` + +```csharp +public class ColonistBarColonistDrawer +{ + private struct IconDrawCall + { + public Texture2D texture; + + public string tooltip; + + public Color? color; + + public IconDrawCall(Texture2D texture, string tooltip = null, Color? color = null) + { + this.texture = texture; + this.tooltip = tooltip; + this.color = color; + } + } + + private Dictionary pawnLabelsCache = new Dictionary(); + + private static readonly Texture2D MoodBGTex = SolidColorMaterials.NewSolidColorTexture(new Color(0.4f, 0.47f, 0.53f, 0.44f)); + + private static readonly Texture2D MoodAtlas = ContentFinder.Get("UI/Widgets/SubtleGradient"); + + private static readonly Texture2D DeadColonistTex = ContentFinder.Get("UI/Misc/DeadColonist"); + + private static readonly Texture2D Icon_FormingCaravan = ContentFinder.Get("UI/Icons/ColonistBar/FormingCaravan"); + + private static readonly Texture2D Icon_MentalStateNonAggro = ContentFinder.Get("UI/Icons/ColonistBar/MentalStateNonAggro"); + + private static readonly Texture2D Icon_MentalStateAggro = ContentFinder.Get("UI/Icons/ColonistBar/MentalStateAggro"); + + private static readonly Texture2D Icon_MedicalRest = ContentFinder.Get("UI/Icons/ColonistBar/MedicalRest"); + + private static readonly Texture2D Icon_Sleeping = ContentFinder.Get("UI/Icons/ColonistBar/Sleeping"); + + private static readonly Texture2D Icon_Fleeing = ContentFinder.Get("UI/Icons/ColonistBar/Fleeing"); + + private static readonly Texture2D Icon_Attacking = ContentFinder.Get("UI/Icons/ColonistBar/Attacking"); + + private static readonly Texture2D Icon_Idle = ContentFinder.Get("UI/Icons/ColonistBar/Idle"); + + private static readonly Texture2D Icon_Burning = ContentFinder.Get("UI/Icons/ColonistBar/Burning"); + + private static readonly Texture2D Icon_Inspired = ContentFinder.Get("UI/Icons/ColonistBar/Inspired"); + + private static readonly Texture2D MoodGradient = ContentFinder.Get("UI/Widgets/MoodGradient"); + + public static readonly Vector2 PawnTextureSize = new Vector2(ColonistBar.BaseSize.x - 2f, 75f); + + public static readonly Vector3 PawnTextureCameraOffset = new Vector3(0f, 0f, 0.3f); + + public const float PawnTextureCameraZoom = 1.28205f; + + private const float PawnTextureHorizontalPadding = 1f; + + private static readonly float BaseIconAreaWidth = PawnTextureSize.x; + + private static readonly float BaseIconMaxSize = 20f; + + private const float BaseGroupFrameMargin = 12f; + + public const float DoubleClickTime = 0.5f; + + public const float FactionIconSpacing = 2f; + + public const float IdeoRoleIconSpacing = 2f; + + public const float SlaveIconSpacing = 2f; + + private const float MoodGradientHeight = 35f; + + private static List tmpIconsToDraw = new List(); + + private ColonistBar ColonistBar => Find.ColonistBar; + + public void DrawColonist(Rect rect, Pawn colonist, Map pawnMap, bool highlight, bool reordering) + { + float alpha = ColonistBar.GetEntryRectAlpha(rect); + bool num = Prefs.VisibleMood && colonist.needs?.mood != null && colonist.mindState.mentalBreaker.CanDoRandomMentalBreaks && !colonist.Dead && !colonist.Downed; + MoodThreshold moodThreshold = MoodThresholdExtensions.CurrentMoodThresholdFor(colonist); + Color color = moodThreshold.GetColor(); + color.a *= alpha; + ApplyEntryInAnotherMapAlphaFactor(pawnMap, ref alpha); + if (reordering) + { + alpha *= 0.5f; + } + Color color3 = (GUI.color = new Color(1f, 1f, 1f, alpha)); + if (num && alpha >= 1f) + { + float num2 = moodThreshold.EdgeExpansion(); + if (num2 > 0f) + { + GUI.color = color; + Widgets.DrawAtlas(rect.ExpandedBy(num2), MoodAtlas); + GUI.color = color3; + } + } + GUI.DrawTexture(rect, ColonistBar.BGTex); + if (colonist.needs != null && colonist.needs.mood != null) + { + Rect position = rect.ContractedBy(2f); + float num3 = position.height * colonist.needs.mood.CurLevelPercentage; + position.yMin = position.yMax - num3; + position.height = num3; + GUI.DrawTexture(position, MoodBGTex); + } + if (num && alpha >= 1f) + { + float transparency = ((moodThreshold < MoodThreshold.Major) ? 0.1f : 0.15f); + Widgets.DrawBoxSolid(rect, moodThreshold.GetColor().ToTransparent(transparency)); + } + if (highlight) + { + int thickness = ((rect.width <= 22f) ? 2 : 3); + GUI.color = Color.white; + Widgets.DrawBox(rect, thickness); + GUI.color = color3; + } + Rect rect2 = rect.ContractedBy(-2f * ColonistBar.Scale); + if ((colonist.Dead ? Find.Selector.SelectedObjects.Contains(colonist.Corpse) : Find.Selector.SelectedObjects.Contains(colonist)) && !WorldRendererUtility.WorldSelected) + { + DrawSelectionOverlayOnGUI(colonist, rect2); + } + else if (WorldRendererUtility.WorldSelected && colonist.IsCaravanMember() && Find.WorldSelector.IsSelected(colonist.GetCaravan())) + { + DrawCaravanSelectionOverlayOnGUI(colonist.GetCaravan(), rect2); + } + GUI.DrawTexture(GetPawnTextureRect(rect.position), PortraitsCache.Get(colonist, PawnTextureSize, Rot4.South, PawnTextureCameraOffset, 1.28205f)); + if (num) + { + Rect rect3 = rect.ContractedBy(1f); + Widgets.BeginGroup(rect3); + Rect position2 = rect3.AtZero(); + position2.yMin = position2.yMax - 35f; + GUI.color = color; + GUI.DrawTexture(position2, MoodGradient); + GUI.color = color3; + Widgets.EndGroup(); + } + GUI.color = new Color(1f, 1f, 1f, alpha * 0.8f); + DrawIcons(rect, colonist); + GUI.color = color3; + if (colonist.Dead) + { + GUI.DrawTexture(rect, DeadColonistTex); + } + float num4 = 4f * ColonistBar.Scale; + Vector2 pos = new Vector2(rect.center.x, rect.yMax - num4); + GenMapUI.DrawPawnLabel(colonist, pos, alpha, rect.width + ColonistBar.SpaceBetweenColonistsHorizontal - 2f, pawnLabelsCache); + Text.Font = GameFont.Small; + GUI.color = Color.white; + } + + private Rect GroupFrameRect(int group) + { + float num = 99999f; + float num2 = 0f; + float num3 = 0f; + List entries = ColonistBar.Entries; + List drawLocs = ColonistBar.DrawLocs; + for (int i = 0; i < entries.Count; i++) + { + if (entries[i].group == group) + { + num = Mathf.Min(num, drawLocs[i].x); + num2 = Mathf.Max(num2, drawLocs[i].x + ColonistBar.Size.x); + num3 = Mathf.Max(num3, drawLocs[i].y + ColonistBar.Size.y); + } + } + return new Rect(num, 0f, num2 - num, num3 - 0f).ContractedBy(-12f * ColonistBar.Scale); + } + + public void DrawGroupFrame(int group) + { + Rect position = GroupFrameRect(group); + Map map = ColonistBar.Entries.Find((ColonistBar.Entry x) => x.group == group).map; + float num = ((map == null) ? ((!WorldRendererUtility.WorldSelected) ? 0.75f : 1f) : ((map == Find.CurrentMap && !WorldRendererUtility.WorldSelected) ? 1f : 0.75f)); + Widgets.DrawRectFast(position, new Color(0.5f, 0.5f, 0.5f, 0.4f * num)); + } + + private void ApplyEntryInAnotherMapAlphaFactor(Map map, ref float alpha) + { + if (map == null) + { + if (!WorldRendererUtility.WorldSelected) + { + alpha = Mathf.Min(alpha, 0.4f); + } + } + else if (map != Find.CurrentMap || WorldRendererUtility.WorldSelected) + { + alpha = Mathf.Min(alpha, 0.4f); + } + } + + public void HandleClicks(Rect rect, Pawn colonist, int reorderableGroup, out bool reordering) + { + if (Event.current.type == EventType.MouseDown && Event.current.button == 0 && Event.current.clickCount == 2 && Mouse.IsOver(rect)) + { + Event.current.Use(); + CameraJumper.TryJump(colonist); + } + reordering = ReorderableWidget.Reorderable(reorderableGroup, rect, useRightButton: true); + if (Event.current.type == EventType.MouseDown && Event.current.button == 1 && Mouse.IsOver(rect)) + { + Event.current.Use(); + } + } + + public void HandleGroupFrameClicks(int group) + { + Rect rect = GroupFrameRect(group); + if (Event.current.type == EventType.MouseUp && Event.current.button == 0 && Mouse.IsOver(rect) && !ColonistBar.AnyColonistOrCorpseAt(UI.MousePositionOnUIInverted)) + { + bool worldSelected = WorldRendererUtility.WorldSelected; + if ((!worldSelected && !Find.Selector.dragBox.IsValidAndActive) || (worldSelected && !Find.WorldSelector.dragBox.IsValidAndActive)) + { + Find.Selector.dragBox.active = false; + Find.WorldSelector.dragBox.active = false; + ColonistBar.Entry entry = ColonistBar.Entries.Find((ColonistBar.Entry x) => x.group == group); + Map map = entry.map; + if (map == null) + { + if (WorldRendererUtility.WorldSelected) + { + CameraJumper.TrySelect(entry.pawn); + } + else + { + CameraJumper.TryJumpAndSelect(entry.pawn); + } + } + else + { + if (!CameraJumper.TryHideWorld() && Find.CurrentMap != map) + { + SoundDefOf.MapSelected.PlayOneShotOnCamera(); + } + Current.Game.CurrentMap = map; + } + } + } + if (Event.current.type == EventType.MouseDown && Event.current.button == 1 && Mouse.IsOver(rect)) + { + Event.current.Use(); + } + } + + public void Notify_RecachedEntries() + { + pawnLabelsCache.Clear(); + } + + public void ClearLabelCache() + { + pawnLabelsCache.Clear(); + } + + public Rect GetPawnTextureRect(Vector2 pos) + { + float x = pos.x; + float y = pos.y; + Vector2 vector = PawnTextureSize * ColonistBar.Scale; + return new Rect(x + 1f, y - (vector.y - ColonistBar.Size.y) - 1f, vector.x, vector.y).ContractedBy(1f); + } + + private void DrawIcons(Rect rect, Pawn colonist) + { + if (colonist.Dead) + { + return; + } + tmpIconsToDraw.Clear(); + bool flag = false; + if (colonist.CurJob != null) + { + JobDef def = colonist.CurJob.def; + if (def == JobDefOf.AttackMelee || def == JobDefOf.AttackStatic) + { + flag = true; + } + else if (def == JobDefOf.Wait_Combat && colonist.stances.curStance is Stance_Busy stance_Busy && stance_Busy.focusTarg.IsValid) + { + flag = true; + } + } + if (colonist.IsFormingCaravan()) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_FormingCaravan, "ActivityIconFormingCaravan".Translate())); + } + if (colonist.InAggroMentalState) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_MentalStateAggro, colonist.MentalStateDef.LabelCap)); + } + else if (colonist.InMentalState) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_MentalStateNonAggro, colonist.MentalStateDef.LabelCap)); + } + else if (colonist.InBed() && colonist.CurrentBed().Medical) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_MedicalRest, "ActivityIconMedicalRest".Translate())); + } + else + { + if (colonist.CurJob != null && colonist.jobs.curDriver.asleep) + { + goto IL_01c5; + } + if (colonist.GetCaravan() != null) + { + Pawn_NeedsTracker needs = colonist.needs; + if (needs != null && needs.rest?.Resting == true) + { + goto IL_01c5; + } + } + if (colonist.CurJob != null && colonist.CurJob.def == JobDefOf.FleeAndCower) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_Fleeing, "ActivityIconFleeing".Translate())); + } + else if (flag) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_Attacking, "ActivityIconAttacking".Translate())); + } + else if (colonist.mindState.IsIdle && GenDate.DaysPassed >= 1) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_Idle, "ActivityIconIdle".Translate())); + } + } + goto IL_02b4; + IL_01c5: + tmpIconsToDraw.Add(new IconDrawCall(Icon_Sleeping, "ActivityIconSleeping".Translate())); + goto IL_02b4; + IL_02b4: + if (colonist.IsBurning()) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_Burning, "ActivityIconBurning".Translate())); + } + if (colonist.Inspired) + { + tmpIconsToDraw.Add(new IconDrawCall(Icon_Inspired, colonist.InspirationDef.LabelCap)); + } + if (colonist.IsSlaveOfColony) + { + tmpIconsToDraw.Add(new IconDrawCall(colonist.guest.GetIcon())); + } + else + { + bool flag2 = false; + if (colonist.Ideo != null) + { + Ideo ideo = colonist.Ideo; + Precept_Role role = ideo.GetRole(colonist); + if (role != null) + { + tmpIconsToDraw.Add(new IconDrawCall(role.Icon, null, ideo.Color)); + flag2 = true; + } + } + if (!flag2) + { + Faction faction = null; + if (colonist.HasExtraMiniFaction()) + { + faction = colonist.GetExtraMiniFaction(); + } + else if (colonist.HasExtraHomeFaction()) + { + faction = colonist.GetExtraHomeFaction(); + } + if (faction != null) + { + tmpIconsToDraw.Add(new IconDrawCall(faction.def.FactionIcon, null, faction.Color)); + } + } + } + float num = Mathf.Min(BaseIconAreaWidth / (float)tmpIconsToDraw.Count, BaseIconMaxSize) * ColonistBar.Scale; + Vector2 pos = new Vector2(rect.x + 1f, rect.yMax - num - 1f); + foreach (IconDrawCall item in tmpIconsToDraw) + { + GUI.color = item.color ?? Color.white; + DrawIcon(item.texture, ref pos, num, item.tooltip); + GUI.color = Color.white; + } + } + + private void DrawIcon(Texture2D icon, ref Vector2 pos, float iconSize, string tooltip = null) + { + Rect rect = new Rect(pos.x, pos.y, iconSize, iconSize); + GUI.DrawTexture(rect, icon); + if (tooltip != null) + { + TooltipHandler.TipRegion(rect, tooltip); + } + pos.x += iconSize; + } + + private void DrawSelectionOverlayOnGUI(Pawn colonist, Rect rect) + { + Thing target = colonist; + if (colonist.Dead) + { + target = colonist.Corpse; + } + SelectionDrawerUtility.DrawSelectionOverlayOnGUI(target, rect, 0.4f * ColonistBar.Scale, 20f * ColonistBar.Scale); + } + + private void DrawCaravanSelectionOverlayOnGUI(Caravan caravan, Rect rect) + { + SelectionDrawerUtility.DrawSelectionOverlayOnGUI(caravan, rect, 0.4f * ColonistBar.Scale, 20f * ColonistBar.Scale); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\ColonistBar.txt` +**相似度:** 0.7704 + +```csharp +public class ColonistBar +{ + public struct Entry + { + public Pawn pawn; + + public Map map; + + public int group; + + public Action reorderAction; + + public Action extraDraggedItemOnGUI; + + public Entry(Pawn pawn, Map map, int group) + { + this.pawn = pawn; + this.map = map; + this.group = group; + reorderAction = delegate(int from, int to) + { + Find.ColonistBar.Reorder(from, to, group); + }; + extraDraggedItemOnGUI = delegate(int index, Vector2 dragStartPos) + { + Find.ColonistBar.DrawColonistMouseAttachment(index, dragStartPos, group); + }; + } + } + + public ColonistBarColonistDrawer drawer = new ColonistBarColonistDrawer(); + + private ColonistBarDrawLocsFinder drawLocsFinder = new ColonistBarDrawLocsFinder(); + + private List cachedEntries = new List(); + + private List cachedDrawLocs = new List(); + + private List cachedReorderableGroups = new List(); + + private float cachedScale = 1f; + + private bool entriesDirty = true; + + private List colonistsToHighlight = new List(); + + public static readonly Texture2D BGTex = Command.BGTex; + + public static readonly Vector2 BaseSize = new Vector2(48f, 48f); + + public const float BaseSelectedTexJump = 20f; + + public const float BaseSelectedTexScale = 0.4f; + + public const float EntryInAnotherMapAlpha = 0.4f; + + public const float BaseSpaceBetweenGroups = 25f; + + public const float BaseSpaceBetweenColonistsHorizontal = 24f; + + public const float BaseSpaceBetweenColonistsVertical = 32f; + + private const float WeaponIconOffsetScaleFactor = 1.05f; + + private const float WeaponIconScaleFactor = 0.75f; + + private static List tmpPawns = new List(); + + private static List tmpMaps = new List(); + + private static List tmpCaravans = new List(); + + private static List tmpColonistsInOrder = new List(); + + private static List> tmpColonistsWithMap = new List>(); + + private static List tmpColonists = new List(); + + private static List tmpMapColonistsOrCorpsesInScreenRect = new List(); + + private static List tmpCaravanPawns = new List(); + + public List Entries + { + get + { + CheckRecacheEntries(); + return cachedEntries; + } + } + + private bool ShowGroupFrames + { + get + { + List entries = Entries; + int num = -1; + for (int i = 0; i < entries.Count; i++) + { + num = Mathf.Max(num, entries[i].group); + } + return num >= 1; + } + } + + public float Scale => cachedScale; + + public List DrawLocs => cachedDrawLocs; + + public Vector2 Size => BaseSize * Scale; + + public float SpaceBetweenColonistsHorizontal => 24f * Scale; + + private bool Visible + { + get + { + if (UI.screenWidth < 800 || UI.screenHeight < 500) + { + return false; + } + if (Find.TilePicker.Active) + { + return false; + } + return true; + } + } + + public void MarkColonistsDirty() + { + entriesDirty = true; + } + + public void ColonistBarOnGUI() + { + if (!Visible) + { + return; + } + if (Event.current.type != EventType.Layout) + { + List entries = Entries; + int num = -1; + bool showGroupFrames = ShowGroupFrames; + int value = -1; + for (int i = 0; i < cachedDrawLocs.Count; i++) + { + Rect rect = new Rect(cachedDrawLocs[i].x, cachedDrawLocs[i].y, Size.x, Size.y); + Entry entry = entries[i]; + bool flag = num != entry.group; + num = entry.group; + if (Event.current.type == EventType.Repaint) + { + if (flag) + { + value = ReorderableWidget.NewGroup(entry.reorderAction, ReorderableDirection.Horizontal, new Rect(0f, 0f, UI.screenWidth, UI.screenHeight), SpaceBetweenColonistsHorizontal, entry.extraDraggedItemOnGUI); + } + cachedReorderableGroups[i] = value; + } + bool reordering; + if (entry.pawn != null) + { + drawer.HandleClicks(rect, entry.pawn, cachedReorderableGroups[i], out reordering); + } + else + { + reordering = false; + } + if (Event.current.type != EventType.Repaint) + { + continue; + } + if (flag && showGroupFrames) + { + drawer.DrawGroupFrame(entry.group); + } + if (entry.pawn != null) + { + drawer.DrawColonist(rect, entry.pawn, entry.map, colonistsToHighlight.Contains(entry.pawn), reordering); + ThingWithComps thingWithComps = entry.pawn.equipment?.Primary; + if ((Prefs.ShowWeaponsUnderPortraitMode == ShowWeaponsUnderPortraitMode.Always || (Prefs.ShowWeaponsUnderPortraitMode == ShowWeaponsUnderPortraitMode.WhileDrafted && entry.pawn.Drafted)) && thingWithComps != null && thingWithComps.def.IsWeapon) + { + Widgets.ThingIcon(new Rect(rect.x, rect.y + rect.height * 1.05f, rect.width, rect.height).ScaledBy(0.75f), thingWithComps, 1f, null, stackOfOne: true); + } + } + } + num = -1; + if (showGroupFrames) + { + for (int j = 0; j < cachedDrawLocs.Count; j++) + { + Entry entry2 = entries[j]; + bool num2 = num != entry2.group; + num = entry2.group; + if (num2) + { + drawer.HandleGroupFrameClicks(entry2.group); + } + } + } + } + if (Event.current.type == EventType.Repaint) + { + colonistsToHighlight.Clear(); + } + } + + private void CheckRecacheEntries() + { + if (!entriesDirty) + { + return; + } + entriesDirty = false; + cachedEntries.Clear(); + int num = 0; + if (Find.PlaySettings.showColonistBar) + { + tmpMaps.Clear(); + tmpMaps.AddRange(Find.Maps); + tmpMaps.SortBy((Map x) => !x.IsPlayerHome, (Map x) => x.uniqueID); + for (int i = 0; i < tmpMaps.Count; i++) + { + tmpPawns.Clear(); + tmpPawns.AddRange(tmpMaps[i].mapPawns.FreeColonists); + tmpPawns.AddRange(tmpMaps[i].mapPawns.ColonySubhumansControllable); + List list = tmpMaps[i].listerThings.ThingsInGroup(ThingRequestGroup.Corpse); + for (int j = 0; j < list.Count; j++) + { + if (!list[j].IsDessicated()) + { + Pawn innerPawn = ((Corpse)list[j]).InnerPawn; + if (innerPawn != null && innerPawn.IsColonist) + { + tmpPawns.Add(innerPawn); + } + } + } + IReadOnlyList allPawnsSpawned = tmpMaps[i].mapPawns.AllPawnsSpawned; + for (int k = 0; k < allPawnsSpawned.Count; k++) + { + if (allPawnsSpawned[k].carryTracker.CarriedThing is Corpse corpse && !corpse.IsDessicated() && corpse.InnerPawn.IsColonist) + { + tmpPawns.Add(corpse.InnerPawn); + } + } + foreach (Pawn tmpPawn in tmpPawns) + { + if (tmpPawn.playerSettings.displayOrder == -9999999) + { + tmpPawn.playerSettings.displayOrder = Mathf.Max(tmpPawns.MaxBy((Pawn p) => p.playerSettings.displayOrder).playerSettings.displayOrder, 0) + 1; + } + } + PlayerPawnsDisplayOrderUtility.Sort(tmpPawns); + foreach (Pawn tmpPawn2 in tmpPawns) + { + cachedEntries.Add(new Entry(tmpPawn2, tmpMaps[i], num)); + } + if (!tmpPawns.Any()) + { + cachedEntries.Add(new Entry(null, tmpMaps[i], num)); + } + num++; + } + tmpCaravans.Clear(); + tmpCaravans.AddRange(Find.WorldObjects.Caravans); + tmpCaravans.SortBy((Caravan x) => x.ID); + for (int l = 0; l < tmpCaravans.Count; l++) + { + if (!tmpCaravans[l].IsPlayerControlled) + { + continue; + } + tmpPawns.Clear(); + tmpPawns.AddRange(tmpCaravans[l].PawnsListForReading); + PlayerPawnsDisplayOrderUtility.Sort(tmpPawns); + for (int m = 0; m < tmpPawns.Count; m++) + { + if (tmpPawns[m].IsColonist || tmpPawns[m].IsColonySubhumanPlayerControlled) + { + cachedEntries.Add(new Entry(tmpPawns[m], null, num)); + } + } + num++; + } + } + cachedReorderableGroups.Clear(); + foreach (Entry cachedEntry in cachedEntries) + { + _ = cachedEntry; + cachedReorderableGroups.Add(-1); + } + drawer.Notify_RecachedEntries(); + tmpPawns.Clear(); + tmpMaps.Clear(); + tmpCaravans.Clear(); + drawLocsFinder.CalculateDrawLocs(cachedDrawLocs, out cachedScale, num); + } + + public float GetEntryRectAlpha(Rect rect) + { + if (Messages.CollidesWithAnyMessage(rect, out var messageAlpha)) + { + return Mathf.Lerp(1f, 0.2f, messageAlpha); + } + return 1f; + } + + public void Highlight(Pawn pawn) + { + if (Visible && !colonistsToHighlight.Contains(pawn)) + { + colonistsToHighlight.Add(pawn); + } + } + + public void Reorder(int from, int to, int entryGroup) + { + int num = 0; + Pawn pawn = null; + Pawn pawn2 = null; + Pawn pawn3 = null; + for (int i = 0; i < cachedEntries.Count; i++) + { + if (cachedEntries[i].group == entryGroup && cachedEntries[i].pawn != null) + { + if (num == from) + { + pawn = cachedEntries[i].pawn; + } + if (num == to) + { + pawn2 = cachedEntries[i].pawn; + } + pawn3 = cachedEntries[i].pawn; + num++; + } + } + if (pawn == null) + { + return; + } + int num2 = pawn2?.playerSettings.displayOrder ?? (pawn3.playerSettings.displayOrder + 1); + for (int j = 0; j < cachedEntries.Count; j++) + { + Pawn pawn4 = cachedEntries[j].pawn; + if (pawn4 == null) + { + continue; + } + if (pawn4.playerSettings.displayOrder == num2) + { + if (pawn2 != null && cachedEntries[j].group == entryGroup) + { + pawn4.playerSettings.displayOrder++; + } + } + else if (pawn4.playerSettings.displayOrder > num2) + { + pawn4.playerSettings.displayOrder++; + } + else + { + pawn4.playerSettings.displayOrder--; + } + } + pawn.playerSettings.displayOrder = num2; + MarkColonistsDirty(); + MainTabWindowUtility.NotifyAllPawnTables_PawnsChanged(); + } + + public void DrawColonistMouseAttachment(int index, Vector2 dragStartPos, int entryGroup) + { + Pawn pawn = null; + Vector2 vector = default(Vector2); + int num = 0; + for (int i = 0; i < cachedEntries.Count; i++) + { + if (cachedEntries[i].group == entryGroup && cachedEntries[i].pawn != null) + { + if (num == index) + { + pawn = cachedEntries[i].pawn; + vector = cachedDrawLocs[i]; + break; + } + num++; + } + } + if (pawn != null) + { + RenderTexture iconTex = PortraitsCache.Get(pawn, ColonistBarColonistDrawer.PawnTextureSize, Rot4.South, ColonistBarColonistDrawer.PawnTextureCameraOffset, 1.28205f); + Rect rect = new Rect(vector.x, vector.y, Size.x, Size.y); + Rect pawnTextureRect = drawer.GetPawnTextureRect(rect.position); + pawnTextureRect.position += Event.current.mousePosition - dragStartPos; + Rect? customRect = pawnTextureRect; + GenUI.DrawMouseAttachment(iconTex, "", 0f, default(Vector2), customRect); + } + } + + public bool AnyColonistOrCorpseAt(Vector2 pos) + { + if (!TryGetEntryAt(pos, out var entry)) + { + return false; + } + return entry.pawn != null; + } + + public bool TryGetEntryAt(Vector2 pos, out Entry entry) + { + List drawLocs = DrawLocs; + List entries = Entries; + Vector2 size = Size; + for (int i = 0; i < drawLocs.Count; i++) + { + if (new Rect(drawLocs[i].x, drawLocs[i].y, size.x, size.y).Contains(pos)) + { + entry = entries[i]; + return true; + } + } + entry = default(Entry); + return false; + } + + public List GetColonistsInOrder() + { + List entries = Entries; + tmpColonistsInOrder.Clear(); + for (int i = 0; i < entries.Count; i++) + { + if (entries[i].pawn != null) + { + tmpColonistsInOrder.Add(entries[i].pawn); + } + } + return tmpColonistsInOrder; + } + + public List ColonistsOrCorpsesInScreenRect(Rect rect) + { + List drawLocs = DrawLocs; + List entries = Entries; + Vector2 size = Size; + tmpColonistsWithMap.Clear(); + for (int i = 0; i < drawLocs.Count; i++) + { + if (rect.Overlaps(new Rect(drawLocs[i].x, drawLocs[i].y, size.x, size.y))) + { + Pawn pawn = entries[i].pawn; + if (pawn != null) + { + Thing first = ((!pawn.Dead || pawn.Corpse == null || !pawn.Corpse.SpawnedOrAnyParentSpawned) ? ((Thing)pawn) : ((Thing)pawn.Corpse)); + tmpColonistsWithMap.Add(new Pair(first, entries[i].map)); + } + } + } + if (WorldRendererUtility.WorldSelected && tmpColonistsWithMap.Any((Pair x) => x.Second == null)) + { + tmpColonistsWithMap.RemoveAll((Pair x) => x.Second != null); + } + else if (tmpColonistsWithMap.Any((Pair x) => x.Second == Find.CurrentMap)) + { + tmpColonistsWithMap.RemoveAll((Pair x) => x.Second != Find.CurrentMap); + } + tmpColonists.Clear(); + for (int j = 0; j < tmpColonistsWithMap.Count; j++) + { + tmpColonists.Add(tmpColonistsWithMap[j].First); + } + tmpColonistsWithMap.Clear(); + return tmpColonists; + } + + public List MapColonistsOrCorpsesInScreenRect(Rect rect) + { + tmpMapColonistsOrCorpsesInScreenRect.Clear(); + if (!Visible) + { + return tmpMapColonistsOrCorpsesInScreenRect; + } + List list = ColonistsOrCorpsesInScreenRect(rect); + for (int i = 0; i < list.Count; i++) + { + if (list[i].Spawned) + { + tmpMapColonistsOrCorpsesInScreenRect.Add(list[i]); + } + } + return tmpMapColonistsOrCorpsesInScreenRect; + } + + public List CaravanMembersInScreenRect(Rect rect) + { + tmpCaravanPawns.Clear(); + if (!Visible) + { + return tmpCaravanPawns; + } + List list = ColonistsOrCorpsesInScreenRect(rect); + for (int i = 0; i < list.Count; i++) + { + if (list[i] is Pawn pawn && pawn.IsCaravanMember()) + { + tmpCaravanPawns.Add(pawn); + } + } + return tmpCaravanPawns; + } + + public List CaravanMembersCaravansInScreenRect(Rect rect) + { + tmpCaravans.Clear(); + if (!Visible) + { + return tmpCaravans; + } + List list = CaravanMembersInScreenRect(rect); + for (int i = 0; i < list.Count; i++) + { + tmpCaravans.Add(list[i].GetCaravan()); + } + return tmpCaravans; + } + + public Caravan CaravanMemberCaravanAt(Vector2 at) + { + if (!Visible) + { + return null; + } + if (ColonistOrCorpseAt(at) is Pawn pawn && pawn.IsCaravanMember()) + { + return pawn.GetCaravan(); + } + return null; + } + + public Thing ColonistOrCorpseAt(Vector2 pos) + { + if (!Visible) + { + return null; + } + if (!TryGetEntryAt(pos, out var entry)) + { + return null; + } + Pawn pawn = entry.pawn; + if (pawn != null && pawn.Dead && pawn.Corpse != null && pawn.Corpse.SpawnedOrAnyParentSpawned) + { + return pawn.Corpse; + } + return pawn; + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/CompBiosculpterPod-CompProperties_BiosculpterPod.txt b/MCP/vector_cache/CompBiosculpterPod-CompProperties_BiosculpterPod.txt new file mode 100644 index 00000000..d14fb0bc --- /dev/null +++ b/MCP/vector_cache/CompBiosculpterPod-CompProperties_BiosculpterPod.txt @@ -0,0 +1,1485 @@ +根据向量相似度分析,与 'CompProperties_BiosculpterPod, CompBiosculpterPod' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod.txt` + +```csharp +public class CompProperties_BiosculpterPod : CompProperties +{ + public SoundDef enterSound; + + public SoundDef exitSound; + + public EffecterDef operatingEffecter; + + public EffecterDef readyEffecter; + + public Color selectCycleColor; + + public float biotunedCycleSpeedFactor; + + public CompProperties_BiosculpterPod() + { + compClass = typeof(CompBiosculpterPod); + } + + public override IEnumerable ConfigErrors(ThingDef parentDef) + { + foreach (string item in base.ConfigErrors(parentDef)) + { + yield return item; + } + if (parentDef.tickerType != TickerType.Normal) + { + yield return GetType().Name + " requires parent ticker type Normal"; + } + } +} +``` +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompBiosculpterPod.txt` + +```csharp +public class CompBiosculpterPod : ThingComp, ISuspendableThingHolder, IThingHolder, IThingHolderWithDrawnPawn, IStoreSettingsParent, INotifyHauledTo, ISearchableContents +{ + private const int NoPowerEjectCumulativeTicks = 60000; + + private const int BiotunedDuration = 4800000; + + private const float NutritionRequired = 5f; + + private const float CacheForSecs = 2f; + + private static readonly Texture2D InterruptCycleIcon = ContentFinder.Get("UI/Designators/Cancel"); + + private static readonly Material BackgroundMat = SolidColorMaterials.NewSolidColorMaterial(new Color(0.082f, 0.078f, 0.063f), ShaderDatabase.SolidColorBehind); + + private const float BackgroundRect_YOff = 0.07317074f; + + private const float Pawn_YOff = 0.03658537f; + + private string currentCycleKey; + + private float currentCycleTicksRemaining; + + private int currentCyclePowerCutTicks; + + private ThingOwner innerContainer; + + private Pawn biotunedTo; + + private int biotunedCountdownTicks; + + private StorageSettings allowedNutritionSettings; + + private float liquifiedNutrition; + + public bool autoLoadNutrition = true; + + public bool devFillPodLatch; + + private bool autoAgeReversal; + + private int tickEntered = -99999; + + public Job queuedEnterJob; + + public Pawn queuedPawn; + + private List chosenExtraItems = new List(); + + private List cycleEligiblePawnOptions = new List(); + + private Pawn pawnEnteringBiosculpter; + + private Dictionary> cachedExtraIngredients = new Dictionary>(); + + private Dictionary cachedAnyPawnEligible = new Dictionary(); + + private static Dictionary> cachedBiotunedPods = new Dictionary>(); + + private Pawn cacheReachIngredientsPawn; + + private CompBiosculpterPod_Cycle cacheReachIngredientsCycle; + + private float cacheReachIngredientsTime = float.MinValue; + + private bool cacheReachIngredientsResult; + + private Effecter progressBarEffecter; + + private Effecter operatingEffecter; + + private Effecter readyEffecter; + + private Texture2D cachedAutoAgeReverseIcon; + + private List cachedAvailableCycles; + + private Dictionary cycleLookup; + + private static string cachedAgeReversalCycleKey = null; + + private List tmpIngredientsStrings = new List(); + + private static readonly List tmpItems = new List(); + + private CompPowerTrader powerTraderComp; + + private CompPower powerComp; + + private static List cachedPodDefs; + + public CompProperties_BiosculpterPod Props => props as CompProperties_BiosculpterPod; + + public ThingOwner SearchableContents => innerContainer; + + public bool IsContentsSuspended => true; + + public float RequiredNutritionRemaining => Mathf.Max(5f - liquifiedNutrition, 0f); + + public bool NutritionLoaded => RequiredNutritionRemaining <= 0f; + + public bool AutoAgeReversal => autoAgeReversal; + + private Texture2D AutoAgeReversalIcon + { + get + { + if (cachedAutoAgeReverseIcon == null) + { + cachedAutoAgeReverseIcon = ContentFinder.Get("UI/Gizmos/BiosculpterAutoAgeReversal"); + } + return cachedAutoAgeReverseIcon; + } + } + + public BiosculpterPodState State + { + get + { + if (Occupant != null) + { + return BiosculpterPodState.Occupied; + } + if (NutritionLoaded) + { + return BiosculpterPodState.SelectingCycle; + } + return BiosculpterPodState.LoadingNutrition; + } + } + + public Pawn Occupant + { + get + { + if (pawnEnteringBiosculpter != null) + { + return pawnEnteringBiosculpter; + } + if (currentCycleKey == null) + { + return null; + } + if (innerContainer.Count != 1) + { + return null; + } + return innerContainer[0] as Pawn; + } + } + + public CompBiosculpterPod_Cycle CurrentCycle + { + get + { + if (currentCycleKey == null) + { + return null; + } + foreach (CompBiosculpterPod_Cycle availableCycle in AvailableCycles) + { + if (availableCycle.Props.key == currentCycleKey) + { + return availableCycle; + } + } + return null; + } + } + + public List AvailableCycles + { + get + { + if (cachedAvailableCycles == null) + { + SetupCycleCaches(); + } + return cachedAvailableCycles; + } + } + + public string AgeReversalCycleKey + { + get + { + if (cachedAgeReversalCycleKey == null) + { + SetupCycleCaches(); + } + return cachedAgeReversalCycleKey; + } + } + + private float CycleSpeedFactorNoPawn => CleanlinessSpeedFactor * BiotunedSpeedFactor; + + public float CycleSpeedFactor + { + get + { + if (Occupant == null) + { + return Mathf.Max(0.1f, CycleSpeedFactorNoPawn); + } + return GetCycleSpeedFactorForPawn(Occupant); + } + } + + private float CleanlinessSpeedFactor => parent.GetStatValue(StatDefOf.BiosculpterPodSpeedFactor); + + private float BiotunedSpeedFactor + { + get + { + if (biotunedTo == null) + { + return 1f; + } + return Props.biotunedCycleSpeedFactor; + } + } + + public bool PowerOn => parent.TryGetComp().PowerOn; + + public float HeldPawnDrawPos_Y => parent.DrawPos.y - 0.03658537f; + + public float HeldPawnBodyAngle => parent.Rotation.Opposite.AsAngle; + + public PawnPosture HeldPawnPosture => PawnPosture.LayingOnGroundFaceUp; + + public bool StorageTabVisible => true; + + public CompBiosculpterPod() + { + innerContainer = new ThingOwner(this); + } + + public override void Initialize(CompProperties props) + { + base.Initialize(props); + allowedNutritionSettings = new StorageSettings(this); + if (parent.def.building.defaultStorageSettings != null) + { + allowedNutritionSettings.CopyFrom(parent.def.building.defaultStorageSettings); + } + } + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + if (ModLister.CheckIdeology("Biosculpter pod comp")) + { + base.PostSpawnSetup(respawningAfterLoad); + } + } + + public override void PostExposeData() + { + base.PostExposeData(); + Scribe_Deep.Look(ref innerContainer, "innerContainer", this); + Scribe_Values.Look(ref currentCycleKey, "currentCycleKey"); + Scribe_Values.Look(ref currentCycleTicksRemaining, "currentCycleTicksRemaining", 0f); + Scribe_Values.Look(ref currentCyclePowerCutTicks, "currentCyclePowerCutTicks", 0); + Scribe_References.Look(ref biotunedTo, "biotunedTo"); + Scribe_Values.Look(ref biotunedCountdownTicks, "biotunedCountdownTicks", 0); + Scribe_Deep.Look(ref allowedNutritionSettings, "allowedNutritionSettings"); + Scribe_Values.Look(ref liquifiedNutrition, "liquifiedNutrition", 0f); + Scribe_Values.Look(ref autoLoadNutrition, "autoLoadNutrition", defaultValue: false); + Scribe_Values.Look(ref devFillPodLatch, "devFillPodLatch", defaultValue: false); + Scribe_Values.Look(ref autoAgeReversal, "autoAgeReversal", defaultValue: false); + Scribe_Values.Look(ref tickEntered, "tickEntered", 0); + Scribe_References.Look(ref queuedEnterJob, "queuedEnterJob"); + Scribe_References.Look(ref queuedPawn, "queuedPawn"); + if (allowedNutritionSettings == null) + { + allowedNutritionSettings = new StorageSettings(this); + if (parent.def.building.defaultStorageSettings != null) + { + allowedNutritionSettings.CopyFrom(parent.def.building.defaultStorageSettings); + } + } + if (Scribe.mode == LoadSaveMode.PostLoadInit) + { + if (currentCycleKey == "healing") + { + currentCycleKey = "medic"; + } + if (biotunedTo != null) + { + SetBiotuned(biotunedTo); + } + LiquifyNutrition(); + } + } + + public CompBiosculpterPod_Cycle GetCycle(string key) + { + if (cycleLookup == null) + { + SetupCycleCaches(); + } + return cycleLookup[key]; + } + + public float GetCycleSpeedFactorForPawn(Pawn p) + { + return Mathf.Max(0.1f, CycleSpeedFactorNoPawn * p.GetStatValue(StatDefOf.BiosculpterOccupantSpeed)); + } + + private void SetupCycleCaches() + { + cachedAvailableCycles = new List(); + cachedAvailableCycles.AddRange(parent.AllComps.OfType()); + cycleLookup = new Dictionary(); + foreach (CompBiosculpterPod_Cycle cachedAvailableCycle in cachedAvailableCycles) + { + if (cachedAvailableCycle is CompBiosculpterPod_AgeReversalCycle compBiosculpterPod_AgeReversalCycle) + { + cachedAgeReversalCycleKey = compBiosculpterPod_AgeReversalCycle.Props.key; + } + cycleLookup[cachedAvailableCycle.Props.key] = cachedAvailableCycle; + } + } + + public void SetBiotuned(Pawn newBiotunedTo) + { + if (newBiotunedTo != biotunedTo) + { + autoAgeReversal = false; + } + if (biotunedTo != null && cachedBiotunedPods.ContainsKey(biotunedTo)) + { + cachedBiotunedPods[biotunedTo].Remove(this); + } + if (newBiotunedTo != null && !cachedBiotunedPods.ContainsKey(newBiotunedTo)) + { + cachedBiotunedPods[newBiotunedTo] = new List(); + } + if (newBiotunedTo != null && !cachedBiotunedPods[newBiotunedTo].Contains(this)) + { + cachedBiotunedPods[newBiotunedTo].Add(this); + } + if (newBiotunedTo != null && newBiotunedTo != biotunedTo) + { + biotunedCountdownTicks = 4800000; + } + biotunedTo = newBiotunedTo; + } + + public override void PostDestroy(DestroyMode mode, Map previousMap) + { + SetBiotuned(null); + if (mode == DestroyMode.Deconstruct || mode == DestroyMode.KillFinalize) + { + EjectContents(interrupted: true, playSounds: false, previousMap); + } + innerContainer.ClearAndDestroyContents(); + base.PostDestroy(mode, previousMap); + } + + public override void PostDeSpawn(Map map, DestroyMode mode = DestroyMode.Vanish) + { + if (mode != DestroyMode.WillReplace) + { + EjectContents(interrupted: true, playSounds: false, map); + currentCycleKey = null; + } + progressBarEffecter?.Cleanup(); + progressBarEffecter = null; + operatingEffecter?.Cleanup(); + operatingEffecter = null; + readyEffecter?.Cleanup(); + readyEffecter = null; + } + + public override void DrawGUIOverlay() + { + base.DrawGUIOverlay(); + if (!Find.ScreenshotModeHandler.Active && (biotunedTo != null || Occupant != null)) + { + GenMapUI.DrawThingLabel(parent, biotunedTo?.LabelShort ?? Occupant.LabelShort, GenMapUI.DefaultThingLabelColor); + } + } + + public override string CompInspectStringExtra() + { + StringBuilder stringBuilder = new StringBuilder(); + BiosculpterPodState state = State; + if (parent.Spawned) + { + CompBiosculpterPod_Cycle currentCycle = CurrentCycle; + if (currentCycle != null) + { + stringBuilder.AppendLineIfNotEmpty().Append("BiosculpterPodCycleLabel".Translate()).Append(": ") + .Append(currentCycle.Props.LabelCap); + if (biotunedTo == null) + { + stringBuilder.Append(" " + "BiosculpterPodCycleWillBiotune".Translate()); + } + } + else if (state == BiosculpterPodState.SelectingCycle) + { + if (PowerOn) + { + if (queuedEnterJob != null && !queuedEnterJob.biosculpterCycleKey.NullOrEmpty()) + { + stringBuilder.Append("BiosculpterPodCycleStandby".Translate(GetCycle(queuedEnterJob.biosculpterCycleKey).Props.label.Named("CYCLE"), queuedPawn.Named("PAWN"))); + } + else + { + stringBuilder.Append("BiosculpterPodCycleSelection".Translate().CapitalizeFirst()); + } + } + else + { + stringBuilder.Append("BiosculpterPodCycleSelectionNoPower".Translate().CapitalizeFirst()); + } + } + if (state == BiosculpterPodState.LoadingNutrition) + { + stringBuilder.Append("BiosculpterPodCycleLabelLoading".Translate().CapitalizeFirst()); + stringBuilder.AppendLineIfNotEmpty().Append("Nutrition".Translate()).Append(": ") + .Append(liquifiedNutrition.ToStringByStyle(ToStringStyle.FloatMaxOne)) + .Append(" / ") + .Append(5f); + } + if (state == BiosculpterPodState.Occupied) + { + float num = currentCycleTicksRemaining / CycleSpeedFactor; + stringBuilder.AppendLineIfNotEmpty().Append("Contains".Translate()).Append(": ") + .Append(Occupant.NameShortColored.Resolve()); + if (!PowerOn) + { + stringBuilder.AppendLine().Append("BiosculpterCycleNoPowerInterrupt".Translate((60000 - currentCyclePowerCutTicks).ToStringTicksToPeriod().Named("TIME")).Colorize(ColorLibrary.RedReadable)); + } + stringBuilder.AppendLine().Append("BiosculpterCycleTimeRemaining".Translate()).Append(": ") + .Append(((int)num).ToStringTicksToPeriod().Colorize(ColoredText.DateTimeColor)); + Ideo ideo = Occupant.Ideo; + if (ideo != null && ideo.HasPrecept(PreceptDefOf.Biosculpting_Accelerated)) + { + stringBuilder.Append(" (" + "BiosculpterCycleAccelerated".Translate() + ")"); + } + if (biotunedTo != null) + { + stringBuilder.AppendLine().Append("BiosculpterBiotunedSpeedFactor".Translate()).Append(": ") + .Append(BiotunedSpeedFactor.ToStringPercent()); + } + stringBuilder.AppendLine().Append("BiosculpterCleanlinessSpeedFactor".Translate()).Append(": ") + .Append(CleanlinessSpeedFactor.ToStringPercent()); + } + } + if (biotunedTo != null && state != BiosculpterPodState.Occupied) + { + stringBuilder.AppendLineIfNotEmpty().Append("BiosculpterBiotunedTo".Translate()).Append(": ") + .Append(biotunedTo.LabelShort) + .Append(" (") + .Append(biotunedCountdownTicks.ToStringTicksToPeriod()) + .Append(")"); + } + if (stringBuilder.Length <= 0) + { + return null; + } + return stringBuilder.ToString(); + } + + public override IEnumerable CompGetGizmosExtra() + { + BiosculpterPodState state = State; + string cycleIndependentCannotUseReason = CannotUseNowReason(); + foreach (CompBiosculpterPod_Cycle cycle in AvailableCycles) + { + string text = cycleIndependentCannotUseReason ?? CannotUseNowCycleReason(cycle); + Command_Action command_Action = new Command_Action(); + command_Action.defaultLabel = "BiosculpterPodCycleCommand".Translate(cycle.Props.label) + ((biotunedTo != null) ? (" (" + biotunedTo.LabelShort + ")") : ""); + command_Action.defaultDesc = CycleDescription(cycle); + command_Action.icon = cycle.Props.Icon; + command_Action.action = delegate + { + SelectPawnsForCycleOptions(cycle, out var options2); + if (biotunedTo != null && options2.Count > 0) + { + options2[0].action(); + if (!(cycle is CompBiosculpterPod_HealingCycle)) + { + Messages.Message("BiosculpterEnteringMessage".Translate(biotunedTo.Named("PAWN"), cycle.Props.label.Named("CYCLE")).CapitalizeFirst(), parent, MessageTypeDefOf.SilentInput, historical: false); + } + } + else + { + Find.WindowStack.Add(new FloatMenu(options2)); + } + }; + command_Action.activateSound = SoundDefOf.Tick_Tiny; + command_Action.Disabled = text != null; + List options; + if (text != null) + { + command_Action.Disable(text); + } + else if (!SelectPawnsForCycleOptions(cycle, out options, shortCircuit: true)) + { + command_Action.Disable((biotunedTo != null) ? "BiosculpterNoEligiblePawnsBiotuned".Translate(biotunedTo.Named("PAWN")) : "BiosculpterNoEligiblePawns".Translate()); + } + yield return command_Action; + } + if (state == BiosculpterPodState.Occupied) + { + Command_Action command_Action2 = new Command_Action(); + command_Action2.defaultLabel = "BiosculpterInteruptCycle".Translate(); + command_Action2.defaultDesc = "BiosculpterInteruptCycleDesc".Translate(); + command_Action2.icon = InterruptCycleIcon; + command_Action2.action = delegate + { + EjectContents(interrupted: true, playSounds: true); + }; + command_Action2.activateSound = SoundDefOf.Designate_Cancel; + yield return command_Action2; + } + Command_Toggle command_Toggle = new Command_Toggle(); + command_Toggle.defaultLabel = "BiosculpterAutoLoadNutritionLabel".Translate(); + command_Toggle.defaultDesc = "BiosculpterAutoLoadNutritionDescription".Translate(); + command_Toggle.icon = (autoLoadNutrition ? TexCommand.ForbidOff : TexCommand.ForbidOn); + command_Toggle.isActive = () => autoLoadNutrition; + command_Toggle.toggleAction = delegate + { + autoLoadNutrition = !autoLoadNutrition; + }; + yield return command_Toggle; + if ((biotunedTo?.Ideo?.HasPrecept(PreceptDefOf.AgeReversal_Demanded)).GetValueOrDefault()) + { + Command_Toggle command_Toggle2 = new Command_Toggle(); + command_Toggle2.defaultLabel = "BiosculpterAutoAgeReversalLabel".Translate(biotunedTo.Named("PAWN")); + TaggedString taggedString = ((biotunedTo.ageTracker.AgeReversalDemandedDeadlineTicks > 0) ? "BiosculpterAutoAgeReversalDescriptionFuture".Translate(biotunedTo.Named("PAWN"), ((int)biotunedTo.ageTracker.AgeReversalDemandedDeadlineTicks).ToStringTicksToPeriodVague().Named("TIME")) : "BiosculpterAutoAgeReversalDescriptionNow".Translate(biotunedTo.Named("PAWN"))); + command_Toggle2.defaultDesc = "BiosculpterAutoAgeReversalDescription".Translate(biotunedTo.Named("PAWN"), taggedString.Named("NEXTTREATMENT")); + command_Toggle2.icon = AutoAgeReversalIcon; + command_Toggle2.isActive = () => AutoAgeReversal; + command_Toggle2.toggleAction = delegate + { + autoAgeReversal = !autoAgeReversal; + }; + if (!CanAgeReverse(biotunedTo)) + { + command_Toggle2.Disable("UnderMinBiosculpterAgeReversalAge".Translate(biotunedTo.ageTracker.AdultMinAge.Named("ADULTAGE")).CapitalizeFirst()); + autoAgeReversal = false; + } + yield return command_Toggle2; + } + foreach (Gizmo item in StorageSettingsClipboard.CopyPasteGizmosFor(allowedNutritionSettings)) + { + yield return item; + } + Gizmo gizmo = Building.SelectContainedItemGizmo(parent, Occupant); + if (gizmo != null) + { + yield return gizmo; + } + if (DebugSettings.ShowDevGizmos) + { + yield return new Command_Action + { + defaultLabel = "DEV: complete cycle", + action = delegate + { + currentCycleTicksRemaining = 10f; + }, + Disabled = (State != BiosculpterPodState.Occupied) + }; + yield return new Command_Action + { + defaultLabel = "DEV: advance cycle +1 day", + action = delegate + { + currentCycleTicksRemaining -= 60000f; + }, + Disabled = (State != BiosculpterPodState.Occupied) + }; + yield return new Command_Action + { + defaultLabel = "DEV: complete biotune timer", + action = delegate + { + biotunedCountdownTicks = 10; + }, + Disabled = (biotunedCountdownTicks <= 0) + }; + yield return new Command_Action + { + defaultLabel = "DEV: fill nutrition and cycle ingredients", + action = delegate + { + liquifiedNutrition = 5f; + devFillPodLatch = true; + }, + Disabled = (State == BiosculpterPodState.Occupied || (devFillPodLatch && liquifiedNutrition == 5f)) + }; + } + } + + private string IngredientsDescription(CompBiosculpterPod_Cycle cycle) + { + tmpIngredientsStrings.Clear(); + if (!cycle.Props.extraRequiredIngredients.NullOrEmpty() && !devFillPodLatch) + { + for (int i = 0; i < cycle.Props.extraRequiredIngredients.Count; i++) + { + tmpIngredientsStrings.Add(cycle.Props.extraRequiredIngredients[i].Summary); + } + } + return tmpIngredientsStrings.ToCommaList(useAnd: true); + } + + private string CycleDescription(CompBiosculpterPod_Cycle cycle) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(cycle.Description(biotunedTo)); + float num = cycle.Props.durationDays / CycleSpeedFactor; + float num2 = num / PreceptDefOf.Biosculpting_Accelerated.biosculpterPodCycleSpeedFactor; + stringBuilder.AppendLine("\n\n" + "BiosculpterPodCycleDuration".Translate() + ": " + ((int)(num * 60000f)).ToStringTicksToDays()); + if (!Find.IdeoManager.classicMode) + { + stringBuilder.Append("BiosculpterPodCycleDurationTranshumanists".Translate() + ": " + ((int)(num2 * 60000f)).ToStringTicksToDays()); + } + return stringBuilder.ToString(); + } + + public bool PawnCanUseNow(Pawn pawn, CompBiosculpterPod_Cycle cycle) + { + return (CannotUseNowReason() ?? CannotUseNowPawnReason(pawn) ?? CannotUseNowCycleReason(cycle) ?? CannotUseNowPawnCycleReason(pawn, cycle)) == null; + } + + public override IEnumerable CompFloatMenuOptions(Pawn selPawn) + { + if (selPawn.IsQuestLodger()) + { + yield return new FloatMenuOption("CannotEnter".Translate() + ": " + "CryptosleepCasketGuestsNotAllowed".Translate().CapitalizeFirst(), null); + yield break; + } + string cycleIndependentfailureReason = CannotUseNowReason() ?? CannotUseNowPawnReason(selPawn); + foreach (CompBiosculpterPod_Cycle cycle in AvailableCycles) + { + string text = cycleIndependentfailureReason ?? CannotUseNowCycleReason(cycle) ?? CannotUseNowPawnCycleReason(selPawn, cycle); + if (text != null) + { + yield return new FloatMenuOption(CannotStartText(cycle, text), null); + continue; + } + string label = "EnterBiosculpterPod".Translate(cycle.Props.label, ((int)(cycle.Props.durationDays / GetCycleSpeedFactorForPawn(selPawn) * 60000f)).ToStringTicksToDays()); + yield return FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(label, delegate + { + PrepareCycleJob(selPawn, selPawn, cycle, EnterBiosculpterJob()); + }), selPawn, parent); + } + } + + public static bool CanAgeReverse(Pawn biosculptee) + { + return biosculptee.ageTracker.Adult; + } + + public static List BiotunedPods(Pawn pawn) + { + return cachedBiotunedPods.TryGetValue(pawn); + } + + public static bool HasBiotunedAutoAgeReversePod(Pawn pawn) + { + List list = cachedBiotunedPods.TryGetValue(pawn); + if (list == null) + { + return false; + } + foreach (CompBiosculpterPod item in list) + { + if (item.AutoAgeReversal) + { + return true; + } + } + return false; + } + + public static string CannotStartText(CompBiosculpterPod_Cycle cycle, string translatedReason) + { + return "BiosculpterCannotStartCycle".Translate(cycle.Props.label) + ": " + translatedReason.CapitalizeFirst(); + } + + public string CannotUseNowCycleReason(CompBiosculpterPod_Cycle cycle) + { + List list = cycle.MissingResearchLabels(); + if (list.Any()) + { + return "MissingRequiredResearch".Translate() + " " + list.ToCommaList(); + } + return null; + } + + public string CannotUseNowPawnCycleReason(Pawn p, CompBiosculpterPod_Cycle cycle, bool checkIngredients = true) + { + return CannotUseNowPawnCycleReason(p, p, cycle, checkIngredients); + } + + private bool CanReachOrHasIngredients(Pawn hauler, Pawn biosculptee, CompBiosculpterPod_Cycle cycle, bool useCache = false) + { + if (!PawnCarryingExtraCycleIngredients(biosculptee, cycle) && (biosculptee == hauler || !PawnCarryingExtraCycleIngredients(hauler, cycle))) + { + return CanReachRequiredIngredients(hauler, cycle, useCache); + } + return true; + } + + public string CannotUseNowPawnCycleReason(Pawn hauler, Pawn biosculptee, CompBiosculpterPod_Cycle cycle, bool checkIngredients = true) + { + if (AgeReversalCycleKey != null && cycle.Props.key == AgeReversalCycleKey && !CanAgeReverse(biosculptee)) + { + return "UnderMinBiosculpterAgeReversalAge".Translate(biosculptee.ageTracker.AdultMinAge.Named("ADULTAGE")).CapitalizeFirst(); + } + if (checkIngredients && !CanReachOrHasIngredients(hauler, biosculptee, cycle, useCache: true)) + { + return "BiosculpterMissingIngredients".Translate(IngredientsDescription(cycle).Named("INGREDIENTS")).CapitalizeFirst(); + } + return null; + } + + public string CannotUseNowPawnReason(Pawn p) + { + if (biotunedTo != null && biotunedTo != p) + { + return "BiosculpterBiotunedToAnother".Translate().CapitalizeFirst(); + } + if (!p.CanReach(parent, PathEndMode.InteractionCell, Danger.Deadly)) + { + return "NoPath".Translate().CapitalizeFirst(); + } + return null; + } + + public string CannotUseNowReason() + { + if (!PowerOn) + { + return "NoPower".Translate().CapitalizeFirst(); + } + if (State == BiosculpterPodState.LoadingNutrition) + { + return "BiosculpterNutritionNotLoaded".Translate().CapitalizeFirst(); + } + if (State == BiosculpterPodState.Occupied) + { + return "BiosculpterOccupied".Translate().CapitalizeFirst(); + } + return null; + } + + private List RequiredIngredients(CompBiosculpterPod_Cycle cycle) + { + List extraRequiredIngredients = cycle.Props.extraRequiredIngredients; + if (extraRequiredIngredients == null || devFillPodLatch) + { + return null; + } + if (!cachedExtraIngredients.ContainsKey(cycle)) + { + cachedExtraIngredients[cycle] = extraRequiredIngredients.Select((ThingDefCountClass tc) => tc.ToIngredientCount()).ToList(); + } + return cachedExtraIngredients[cycle]; + } + + private bool CanReachRequiredIngredients(Pawn pawn, CompBiosculpterPod_Cycle cycle, bool useCache = false) + { + chosenExtraItems.Clear(); + if (cycle.Props.extraRequiredIngredients == null || devFillPodLatch) + { + return true; + } + float realtimeSinceStartup = Time.realtimeSinceStartup; + if (useCache && cacheReachIngredientsPawn == pawn && cacheReachIngredientsCycle == cycle && realtimeSinceStartup < cacheReachIngredientsTime + 2f) + { + return cacheReachIngredientsResult; + } + cacheReachIngredientsPawn = pawn; + cacheReachIngredientsCycle = cycle; + cacheReachIngredientsTime = realtimeSinceStartup; + cacheReachIngredientsResult = WorkGiver_DoBill.TryFindBestFixedIngredients(RequiredIngredients(cycle), pawn, parent, chosenExtraItems); + return cacheReachIngredientsResult; + } + + private bool SelectPawnCycleOption(Pawn pawn, CompBiosculpterPod_Cycle cycle, out FloatMenuOption option) + { + string text = CannotUseNowPawnReason(pawn) ?? CannotUseNowPawnCycleReason(pawn, cycle, checkIngredients: false); + string label = pawn.Label + ((text == null) ? "" : (": " + text)); + Action action = null; + if (text == null) + { + action = delegate + { + PrepareCycleJob(pawn, pawn, cycle, EnterBiosculpterJob()); + }; + } + option = new FloatMenuOption(label, action); + return text == null; + } + + private bool SelectPawnsForCycleOptions(CompBiosculpterPod_Cycle cycle, out List options, bool shortCircuit = false) + { + cycleEligiblePawnOptions.Clear(); + options = cycleEligiblePawnOptions; + if (!cachedAnyPawnEligible.ContainsKey(cycle)) + { + cachedAnyPawnEligible[cycle] = new CacheAnyPawnEligibleCycle + { + gameTime = float.MinValue + }; + } + int ticksGame = Find.TickManager.TicksGame; + if (shortCircuit && (float)ticksGame < cachedAnyPawnEligible[cycle].gameTime + 2f) + { + return cachedAnyPawnEligible[cycle].anyEligible; + } + cachedAnyPawnEligible[cycle].gameTime = ticksGame; + if (biotunedTo != null) + { + if (biotunedTo.Dead || !biotunedTo.Spawned || biotunedTo.Map != parent.Map) + { + cachedAnyPawnEligible[cycle].anyEligible = false; + return cachedAnyPawnEligible[cycle].anyEligible; + } + if (SelectPawnCycleOption(biotunedTo, cycle, out var option) && shortCircuit) + { + cachedAnyPawnEligible[cycle].anyEligible = true; + return cachedAnyPawnEligible[cycle].anyEligible; + } + cycleEligiblePawnOptions.Add(option); + } + else + { + foreach (Pawn item in parent.Map.mapPawns.FreeColonistsSpawned) + { + if (SelectPawnCycleOption(item, cycle, out var option2) && shortCircuit) + { + cachedAnyPawnEligible[cycle].anyEligible = true; + return cachedAnyPawnEligible[cycle].anyEligible; + } + cycleEligiblePawnOptions.Add(option2); + } + } + cachedAnyPawnEligible[cycle].anyEligible = cycleEligiblePawnOptions.Count > 0; + return cachedAnyPawnEligible[cycle].anyEligible; + } + + public Job EnterBiosculpterJob() + { + return JobMaker.MakeJob(JobDefOf.EnterBiosculpterPod, parent); + } + + public Job MakeCarryToBiosculpterJob(Pawn willBeCarried) + { + return JobMaker.MakeJob(JobDefOf.CarryToBiosculpterPod, willBeCarried, LocalTargetInfo.Invalid, parent); + } + + public void ConfigureJobForCycle(Job job, CompBiosculpterPod_Cycle cycle, List extraIngredients) + { + if (!extraIngredients.NullOrEmpty()) + { + job.targetQueueB = new List(extraIngredients.Count); + job.countQueue = new List(extraIngredients.Count); + foreach (ThingCount extraIngredient in extraIngredients) + { + job.targetQueueB.Add(extraIngredient.Thing); + job.countQueue.Add(extraIngredient.Count); + } + } + job.haulMode = HaulMode.ToCellNonStorage; + job.biosculpterCycleKey = cycle.Props.key; + } + + public void PrepareCycleJob(Pawn hauler, Pawn biosculptee, CompBiosculpterPod_Cycle cycle, Job job) + { + OrderToPod(cycle, biosculptee, delegate + { + chosenExtraItems.Clear(); + if (!CanReachOrHasIngredients(hauler, biosculptee, cycle)) + { + Messages.Message("BiosculpterMissingIngredients".Translate(IngredientsDescription(cycle).Named("INGREDIENTS")).CapitalizeFirst(), parent, MessageTypeDefOf.NegativeEvent, historical: false); + } + else + { + ConfigureJobForCycle(job, cycle, chosenExtraItems); + if (cycle.Props.extraRequiredIngredients != null && !devFillPodLatch) + { + if (job.def == JobDefOf.CarryToBiosculpterPod) + { + Messages.Message("BiosculpterCarryStartedMessage".Translate(hauler.Named("PAWN"), IngredientsDescription(cycle).Named("INGREDIENTS"), biosculptee.Named("DOWNED"), cycle.Props.label.Named("CYCLE")), parent, MessageTypeDefOf.SilentInput, historical: false); + } + else + { + Messages.Message("BiosculpterLoadingStartedMessage".Translate(hauler.Named("PAWN"), IngredientsDescription(cycle).Named("INGREDIENTS"), cycle.Props.label.Named("CYCLE")), parent, MessageTypeDefOf.SilentInput, historical: false); + } + } + if (hauler.jobs.TryTakeOrderedJob(job, JobTag.Misc)) + { + SetQueuedInformation(job, biosculptee); + } + } + }); + } + + public void ClearQueuedInformation() + { + SetQueuedInformation(null, null); + } + + public void SetQueuedInformation(Job job, Pawn biosculptee) + { + queuedEnterJob = job; + queuedPawn = biosculptee; + } + + public bool CanAcceptNutrition(Thing thing) + { + return allowedNutritionSettings.AllowedToAccept(thing); + } + + public bool CanAcceptOnceCycleChosen(Pawn pawn) + { + if (State != BiosculpterPodState.SelectingCycle || !PowerOn) + { + return false; + } + if (biotunedTo != null && biotunedTo != pawn) + { + return false; + } + return true; + } + + public bool PawnCarryingExtraCycleIngredients(Pawn pawn, string cycleKey, bool remove = false) + { + return PawnCarryingExtraCycleIngredients(pawn, GetCycle(cycleKey), remove); + } + + public bool PawnCarryingExtraCycleIngredients(Pawn pawn, CompBiosculpterPod_Cycle cycle, bool remove = false) + { + if (cycle.Props.extraRequiredIngredients.NullOrEmpty() || devFillPodLatch) + { + return true; + } + foreach (ThingDefCountClass extraRequiredIngredient in cycle.Props.extraRequiredIngredients) + { + if (pawn.inventory.Count(extraRequiredIngredient.thingDef) < extraRequiredIngredient.count) + { + return false; + } + } + if (remove) + { + foreach (ThingDefCountClass extraRequiredIngredient2 in cycle.Props.extraRequiredIngredients) + { + pawn.inventory.RemoveCount(extraRequiredIngredient2.thingDef, extraRequiredIngredient2.count); + } + } + return true; + } + + public bool TryAcceptPawn(Pawn pawn, string cycleKey) + { + return TryAcceptPawn(pawn, GetCycle(cycleKey)); + } + + public bool TryAcceptPawn(Pawn pawn, CompBiosculpterPod_Cycle cycle) + { + if (!CanAcceptOnceCycleChosen(pawn)) + { + return false; + } + if (!PawnCarryingExtraCycleIngredients(pawn, cycle, remove: true)) + { + return false; + } + currentCycleKey = cycle.Props.key; + innerContainer.ClearAndDestroyContents(); + pawnEnteringBiosculpter = pawn; + bool num = pawn.DeSpawnOrDeselect(); + if (pawn.holdingOwner != null) + { + pawn.holdingOwner.TryTransferToContainer(pawn, innerContainer); + } + else + { + innerContainer.TryAdd(pawn); + } + if (num) + { + Find.Selector.Select(pawn, playSound: false, forceDesignatorDeselect: false); + } + pawnEnteringBiosculpter = null; + currentCycleTicksRemaining = cycle.Props.durationDays * 60000f; + liquifiedNutrition = 0f; + devFillPodLatch = false; + ClearQueuedInformation(); + tickEntered = Find.TickManager.TicksGame; + return true; + } + + public void EjectContents(bool interrupted, bool playSounds, Map destMap = null) + { + if (destMap == null) + { + destMap = parent.Map; + } + Pawn occupant = Occupant; + currentCycleKey = null; + currentCycleTicksRemaining = 0f; + currentCyclePowerCutTicks = 0; + liquifiedNutrition = 0f; + devFillPodLatch = false; + innerContainer.TryDropAll(parent.InteractionCell, destMap, ThingPlaceMode.Near); + if (occupant != null) + { + FilthMaker.TryMakeFilth(parent.InteractionCell, destMap, ThingDefOf.Filth_PodSlime, new IntRange(3, 6).RandomInRange); + if (interrupted) + { + occupant.needs?.mood.thoughts.memories.TryGainMemory(ThoughtDefOf.SoakingWet); + occupant.health?.AddHediff(HediffDefOf.BiosculptingSickness); + } + } + if (playSounds) + { + Props.exitSound?.PlayOneShot(SoundInfo.InMap(new TargetInfo(parent.Position, parent.Map))); + } + } + + private void CycleCompleted() + { + Pawn occupant = Occupant; + CompBiosculpterPod_Cycle currentCycle = CurrentCycle; + SetBiotuned(occupant); + currentCycle.CycleCompleted(occupant); + EjectContents(interrupted: false, playSounds: true); + if (occupant != null) + { + Need_Food need_Food = occupant.needs?.food; + if (need_Food != null) + { + need_Food.CurLevelPercentage = 1f; + } + Need_Rest need_Rest = occupant.needs?.rest; + if (need_Rest != null) + { + need_Rest.CurLevelPercentage = 1f; + } + if (currentCycle.Props.gainThoughtOnCompletion != null) + { + occupant.needs?.mood?.thoughts.memories.TryGainMemory(ThoughtDefOf.AgeReversalReceived); + } + Find.HistoryEventsManager.RecordEvent(new HistoryEvent(HistoryEventDefOf.UsedBiosculpterPod, occupant.Named(HistoryEventArgsNames.Doer))); + } + if (tickEntered > 0) + { + occupant.drugs.Notify_LeftSuspension(Find.TickManager.TicksGame - tickEntered); + } + } + + private void LiquifyNutrition() + { + tmpItems.AddRange(innerContainer); + foreach (Thing tmpItem in tmpItems) + { + float num = tmpItem.GetStatValue(StatDefOf.Nutrition) * (float)tmpItem.stackCount; + if (!(num <= 0f) && !(tmpItem is Pawn)) + { + liquifiedNutrition = Mathf.Min(5f, liquifiedNutrition + num); + tmpItem.Destroy(); + } + } + tmpItems.Clear(); + } + + public override void CompTick() + { + if (!ModLister.CheckIdeology("Biosculpting")) + { + return; + } + base.CompTick(); + if (State != BiosculpterPodState.SelectingCycle || !PowerOn) + { + readyEffecter?.Cleanup(); + readyEffecter = null; + } + else if (Props.readyEffecter != null) + { + if (readyEffecter == null) + { + readyEffecter = Props.readyEffecter.Spawn(); + ColorizeEffecter(readyEffecter, Props.selectCycleColor); + readyEffecter.Trigger(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + readyEffecter.EffectTick(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + if (State != BiosculpterPodState.Occupied) + { + progressBarEffecter?.Cleanup(); + progressBarEffecter = null; + operatingEffecter?.Cleanup(); + operatingEffecter = null; + } + else + { + Pawn occupant = Occupant; + biotunedCountdownTicks = 4800000; + if (PowerOn) + { + int num = 1; + currentCycleTicksRemaining -= (float)num * CycleSpeedFactor; + if (currentCycleTicksRemaining <= 0f) + { + CycleCompleted(); + } + } + else + { + currentCyclePowerCutTicks++; + if (currentCyclePowerCutTicks >= 60000) + { + EjectContents(interrupted: true, playSounds: true); + Messages.Message("BiosculpterNoPowerEjectedMessage".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.NegativeEvent, historical: false); + } + } + if (currentCycleTicksRemaining > 0f) + { + if (progressBarEffecter == null) + { + progressBarEffecter = EffecterDefOf.ProgressBar.Spawn(); + } + progressBarEffecter.EffectTick(parent, TargetInfo.Invalid); + MoteProgressBar moteProgressBar = (progressBarEffecter.children[0] as SubEffecter_ProgressBar)?.mote; + if (moteProgressBar != null) + { + float num2 = CurrentCycle.Props.durationDays * 60000f; + moteProgressBar.progress = 1f - Mathf.Clamp01(currentCycleTicksRemaining / num2); + int num3 = (parent.RotatedSize.z - 1) / 2; + moteProgressBar.offsetZ = 0f - ((float)num3 + 0.5f); + } + if (Props.operatingEffecter != null) + { + if (!PowerOn) + { + operatingEffecter?.Cleanup(); + operatingEffecter = null; + } + else + { + if (operatingEffecter == null) + { + operatingEffecter = Props.operatingEffecter.Spawn(); + ColorizeEffecter(operatingEffecter, CurrentCycle.Props.operatingColor); + operatingEffecter.Trigger(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + operatingEffecter.EffectTick(parent, new TargetInfo(parent.InteractionCell, parent.Map)); + } + } + } + } + if (PowerOn && biotunedCountdownTicks > 0) + { + biotunedCountdownTicks--; + } + if (biotunedCountdownTicks <= 0) + { + SetBiotuned(null); + } + SetPower(); + if (biotunedTo?.Ideo != null && !biotunedTo.Ideo.HasPrecept(PreceptDefOf.AgeReversal_Demanded)) + { + autoAgeReversal = false; + } + } + + private void SetPower() + { + if (powerTraderComp == null) + { + powerTraderComp = parent.TryGetComp(); + } + if (powerComp == null) + { + powerComp = parent.TryGetComp(); + } + if (State == BiosculpterPodState.Occupied) + { + powerTraderComp.PowerOutput = 0f - powerComp.Props.PowerConsumption; + } + else + { + powerTraderComp.PowerOutput = 0f - powerComp.Props.idlePowerDraw; + } + } + + private void ColorizeEffecter(Effecter effecter, Color color) + { + foreach (SubEffecter child in effecter.children) + { + if (child is SubEffecter_Sprayer subEffecter_Sprayer) + { + subEffecter_Sprayer.colorOverride = color * child.def.color; + } + } + } + + public override void PostDraw() + { + base.PostDraw(); + Rot4 rotation = parent.Rotation; + Vector3 s = new Vector3(parent.def.graphicData.drawSize.x * 0.8f, 1f, parent.def.graphicData.drawSize.y * 0.8f); + Vector3 drawPos = parent.DrawPos; + drawPos.y -= 0.07317074f; + Graphics.DrawMesh(MeshPool.plane10, Matrix4x4.TRS(drawPos, rotation.AsQuat, s), BackgroundMat, 0); + if (State == BiosculpterPodState.Occupied) + { + Pawn occupant = Occupant; + Vector3 drawLoc = parent.DrawPos + FloatingOffset(currentCycleTicksRemaining + (float)currentCyclePowerCutTicks); + Rot4 rotation2 = parent.Rotation; + if (rotation2 == Rot4.East || rotation2 == Rot4.West) + { + drawLoc.z += 0.2f; + } + occupant.Drawer.renderer.RenderPawnAt(drawLoc, null, neverAimWeapon: true); + } + } + + public static Vector3 FloatingOffset(float tickOffset) + { + float num = tickOffset % 500f / 500f; + float num2 = Mathf.Sin(MathF.PI * num); + float z = num2 * num2 * 0.04f; + return new Vector3(0f, 0f, z); + } + + public void GetChildHolders(List outChildren) + { + ThingOwnerUtility.AppendThingHoldersFromThings(outChildren, GetDirectlyHeldThings()); + } + + public ThingOwner GetDirectlyHeldThings() + { + return innerContainer; + } + + public StorageSettings GetStoreSettings() + { + return allowedNutritionSettings; + } + + public StorageSettings GetParentStoreSettings() + { + return parent.def.building.fixedStorageSettings; + } + + public void Notify_SettingsChanged() + { + } + + private static void OrderToPod(CompBiosculpterPod_Cycle cycle, Pawn pawn, Action giveJobAct) + { + if (cycle is CompBiosculpterPod_HealingCycle compBiosculpterPod_HealingCycle) + { + string healingDescriptionForPawn = compBiosculpterPod_HealingCycle.GetHealingDescriptionForPawn(pawn); + string text = (healingDescriptionForPawn.NullOrEmpty() ? "BiosculpterNoCoditionsToHeal".Translate(pawn.Named("PAWN"), compBiosculpterPod_HealingCycle.Props.label.Named("CYCLE")).Resolve() : ("OnCompletionOfCycle".Translate(compBiosculpterPod_HealingCycle.Props.label.Named("CYCLE")).Resolve() + ":\n\n" + healingDescriptionForPawn)); + Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation(text, giveJobAct, healingDescriptionForPawn.NullOrEmpty())); + } + else + { + giveJobAct(); + } + } + + public static Thing FindPodFor(Pawn pawn, Pawn traveller, bool biotuned) + { + if (cachedPodDefs.NullOrEmpty()) + { + cachedPodDefs = DefDatabase.AllDefs.Where((ThingDef def) => def.GetCompProperties() != null).ToList(); + } + foreach (ThingDef cachedPodDef in cachedPodDefs) + { + Thing thing = GenClosest.ClosestThingReachable(traveller.Position, pawn.Map, ThingRequest.ForDef(cachedPodDef), PathEndMode.InteractionCell, TraverseParms.For(pawn), 9999f, Validator); + if (thing != null) + { + return thing; + } + } + return null; + bool Validator(Thing t) + { + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (biotuned && compBiosculpterPod.biotunedTo != traveller) + { + return false; + } + return compBiosculpterPod.CanAcceptOnceCycleChosen(traveller); + } + } + + public static bool WasLoadingCanceled(Thing thing) + { + CompBiosculpterPod compBiosculpterPod = thing.TryGetComp(); + if (compBiosculpterPod != null && compBiosculpterPod.State != 0) + { + return true; + } + return false; + } + + public void ClearCycle() + { + currentCycleKey = null; + } + + public void Notify_HauledTo(Pawn hauler, Thing thing, int count) + { + LiquifyNutrition(); + SoundDefOf.Standard_Drop.PlayOneShot(parent); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_BaseCycle.txt` +**相似度:** 0.7539 + +```csharp +public abstract class CompProperties_BiosculpterPod_BaseCycle : CompProperties +{ + [NoTranslate] + public string key; + + [MustTranslate] + public string label; + + [MustTranslate] + public string description; + + [NoTranslate] + public string iconPath; + + public float durationDays; + + public Color operatingColor = new Color(0.5f, 0.7f, 0.5f); + + public ThoughtDef gainThoughtOnCompletion; + + public List requiredResearch; + + public List extraRequiredIngredients; + + private Texture2D icon; + + public Texture2D Icon + { + get + { + if (icon == null) + { + icon = ContentFinder.Get(iconPath); + } + return icon; + } + } + + public string LabelCap => label.CapitalizeFirst(); +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_PleasureCycle.txt` +**相似度:** 0.7363 + +```csharp +public class CompProperties_BiosculpterPod_PleasureCycle : CompProperties_BiosculpterPod_BaseCycle +{ + public CompProperties_BiosculpterPod_PleasureCycle() + { + compClass = typeof(CompBiosculpterPod_PleasureCycle); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_AgeReversalCycle.txt` +**相似度:** 0.7237 + +```csharp +public class CompProperties_BiosculpterPod_AgeReversalCycle : CompProperties_BiosculpterPod_BaseCycle +{ + public CompProperties_BiosculpterPod_AgeReversalCycle() + { + compClass = typeof(CompBiosculpterPod_AgeReversalCycle); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompBiosculpterPod_Cycle.txt` +**相似度:** 0.7087 + +```csharp +public abstract class CompBiosculpterPod_Cycle : ThingComp +{ + private List tmpMissingResearchLabels = new List(); + + public CompProperties_BiosculpterPod_BaseCycle Props => (CompProperties_BiosculpterPod_BaseCycle)props; + + public abstract void CycleCompleted(Pawn occupant); + + public virtual string Description(Pawn tunedFor) + { + return Props.description; + } + + public List MissingResearchLabels() + { + tmpMissingResearchLabels.Clear(); + if (Props.requiredResearch.NullOrEmpty()) + { + return tmpMissingResearchLabels; + } + foreach (ResearchProjectDef item in Props.requiredResearch) + { + if (!item.IsFinished) + { + tmpMissingResearchLabels.Add(item.LabelCap); + } + } + return tmpMissingResearchLabels; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_BiosculpterPod_HealingCycle.txt` +**相似度:** 0.6966 + +```csharp +public class CompProperties_BiosculpterPod_HealingCycle : CompProperties_BiosculpterPod_BaseCycle +{ + public List bodyPartsToRestore; + + public List conditionsToPossiblyCure; +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/CompBiosculpterPod-WorkGiver_HaulToBiosculpterPod.txt b/MCP/vector_cache/CompBiosculpterPod-WorkGiver_HaulToBiosculpterPod.txt new file mode 100644 index 00000000..6bbbe9dc --- /dev/null +++ b/MCP/vector_cache/CompBiosculpterPod-WorkGiver_HaulToBiosculpterPod.txt @@ -0,0 +1,91 @@ +根据向量相似度分析,与 'WorkGiver_HaulToBiosculpterPod, CompBiosculpterPod' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_HaulToBiosculpterPod.txt` + +```csharp +public class WorkGiver_HaulToBiosculpterPod : WorkGiver_Scanner +{ + public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForDef(ThingDefOf.BiosculpterPod); + + public override PathEndMode PathEndMode => PathEndMode.Touch; + + public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (!ModLister.CheckIdeology("Biosculpting")) + { + return false; + } + if (!pawn.CanReserve(t, 1, -1, null, forced)) + { + return false; + } + if (pawn.Map.designationManager.DesignationOn(t, DesignationDefOf.Deconstruct) != null) + { + return false; + } + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (compBiosculpterPod == null || !compBiosculpterPod.PowerOn || compBiosculpterPod.State != 0 || (!forced && !compBiosculpterPod.autoLoadNutrition)) + { + return false; + } + if (t.IsBurning()) + { + return false; + } + if (compBiosculpterPod.RequiredNutritionRemaining > 0f) + { + if (FindNutrition(pawn, compBiosculpterPod).Thing == null) + { + JobFailReason.Is("NoFood".Translate()); + return false; + } + return true; + } + return false; + } + + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (compBiosculpterPod == null) + { + return null; + } + if (compBiosculpterPod.RequiredNutritionRemaining > 0f) + { + ThingCount thingCount = FindNutrition(pawn, compBiosculpterPod); + if (thingCount.Thing != null) + { + Job job = HaulAIUtility.HaulToContainerJob(pawn, thingCount.Thing, t); + job.count = Mathf.Min(job.count, thingCount.Count); + return job; + } + } + return null; + } + + private ThingCount FindNutrition(Pawn pawn, CompBiosculpterPod pod) + { + Thing thing = GenClosest.ClosestThingReachable(pawn.Position, pawn.Map, ThingRequest.ForGroup(ThingRequestGroup.FoodSourceNotPlantOrTree), PathEndMode.ClosestTouch, TraverseParms.For(pawn), 9999f, Validator); + if (thing == null) + { + return default(ThingCount); + } + int b = Mathf.CeilToInt(pod.RequiredNutritionRemaining / thing.GetStatValue(StatDefOf.Nutrition)); + return new ThingCount(thing, Mathf.Min(thing.stackCount, b)); + bool Validator(Thing x) + { + if (x.IsForbidden(pawn) || !pawn.CanReserve(x)) + { + return false; + } + if (!pod.CanAcceptNutrition(x)) + { + return false; + } + return true; + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/CompProperties_Refuelable.txt b/MCP/vector_cache/CompProperties_Refuelable.txt new file mode 100644 index 00000000..89d178ca --- /dev/null +++ b/MCP/vector_cache/CompProperties_Refuelable.txt @@ -0,0 +1,881 @@ +根据向量相似度分析,与 'CompProperties_Refuelable' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompProperties_Refuelable.txt` + +```csharp +public class CompProperties_Refuelable : CompProperties +{ + public float fuelConsumptionRate = 1f; + + public float fuelCapacity = 2f; + + public float initialFuelPercent; + + public float autoRefuelPercent = 0.3f; + + public float fuelConsumptionPerTickInRain; + + public ThingFilter fuelFilter; + + public bool destroyOnNoFuel; + + public bool consumeFuelOnlyWhenUsed; + + public bool consumeFuelOnlyWhenPowered; + + public bool showFuelGizmo; + + public bool initialAllowAutoRefuel = true; + + public bool showAllowAutoRefuelToggle; + + public bool allowRefuelIfNotEmpty = true; + + public bool fuelIsMortarBarrel; + + public bool targetFuelLevelConfigurable; + + public float initialConfigurableTargetFuelLevel; + + public bool drawOutOfFuelOverlay = true; + + public float minimumFueledThreshold; + + public bool drawFuelGaugeInMap; + + public bool atomicFueling; + + private float fuelMultiplier = 1f; + + public bool factorByDifficulty; + + [MustTranslate] + public string fuelLabel; + + [MustTranslate] + public string fuelGizmoLabel; + + [MustTranslate] + public string outOfFuelMessage; + + [NoTranslate] + public string fuelIconPath; + + public bool externalTicking; + + public bool hideGizmosIfNotPlayerFaction; + + public bool functionsInVacuum = true; + + private Texture2D fuelIcon; + + public string FuelLabel + { + get + { + if (fuelLabel.NullOrEmpty()) + { + return "Fuel".TranslateSimple(); + } + return fuelLabel; + } + } + + public string FuelGizmoLabel + { + get + { + if (fuelGizmoLabel.NullOrEmpty()) + { + return "Fuel".TranslateSimple(); + } + return fuelGizmoLabel; + } + } + + public Texture2D FuelIcon + { + get + { + if (fuelIcon == null) + { + if (!fuelIconPath.NullOrEmpty()) + { + fuelIcon = ContentFinder.Get(fuelIconPath); + } + else + { + ThingDef thingDef = ((fuelFilter.AnyAllowedDef == null) ? ThingDefOf.Chemfuel : fuelFilter.AnyAllowedDef); + fuelIcon = thingDef.uiIcon; + } + } + return fuelIcon; + } + } + + public float FuelMultiplierCurrentDifficulty + { + get + { + if (factorByDifficulty && Find.Storyteller?.difficulty != null) + { + return fuelMultiplier / Find.Storyteller.difficulty.maintenanceCostFactor; + } + return fuelMultiplier; + } + } + + public CompProperties_Refuelable() + { + compClass = typeof(CompRefuelable); + } + + public override void ResolveReferences(ThingDef parentDef) + { + base.ResolveReferences(parentDef); + fuelFilter.ResolveReferences(); + } + + public override IEnumerable ConfigErrors(ThingDef parentDef) + { + foreach (string item in base.ConfigErrors(parentDef)) + { + yield return item; + } + if (destroyOnNoFuel && initialFuelPercent <= 0f) + { + yield return "Refuelable component has destroyOnNoFuel, but initialFuelPercent <= 0"; + } + if ((!consumeFuelOnlyWhenUsed || fuelConsumptionPerTickInRain > 0f) && parentDef.tickerType != TickerType.Normal) + { + yield return $"Refuelable component set to consume fuel per tick, but parent tickertype is {parentDef.tickerType} instead of {TickerType.Normal}"; + } + } + + public override IEnumerable SpecialDisplayStats(StatRequest req) + { + foreach (StatDrawEntry item in base.SpecialDisplayStats(req)) + { + yield return item; + } + if (((ThingDef)req.Def).building.IsTurret) + { + yield return new StatDrawEntry(StatCategoryDefOf.Building, "ShotsBeforeRearm".Translate(), ((int)fuelCapacity).ToString(), "ShotsBeforeRearmExplanation".Translate(), 3171); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompRefuelable.txt` +**相似度:** 0.7548 + +```csharp +public class CompRefuelable : ThingComp_VacuumAware, IThingGlower +{ + private float fuel; + + private float configuredTargetFuelLevel = -1f; + + public bool allowAutoRefuel = true; + + private CompFlickable flickComp; + + private CompExplosive explosiveComp; + + public const string RefueledSignal = "Refueled"; + + public const string RanOutOfFuelSignal = "RanOutOfFuel"; + + private static readonly Texture2D SetTargetFuelLevelCommand = ContentFinder.Get("UI/Commands/SetTargetFuelLevel"); + + private static readonly Vector2 FuelBarSize = new Vector2(1f, 0.2f); + + private static readonly Material FuelBarFilledMat = SolidColorMaterials.SimpleSolidColorMaterial(new Color(0.6f, 0.56f, 0.13f)); + + private static readonly Material FuelBarUnfilledMat = SolidColorMaterials.SimpleSolidColorMaterial(new Color(0.3f, 0.3f, 0.3f)); + + protected override bool FunctionsInVacuum => Props.functionsInVacuum; + + public float TargetFuelLevel + { + get + { + if (configuredTargetFuelLevel >= 0f) + { + return configuredTargetFuelLevel; + } + if (Props.targetFuelLevelConfigurable) + { + return Props.initialConfigurableTargetFuelLevel; + } + return Props.fuelCapacity; + } + set + { + configuredTargetFuelLevel = Mathf.Clamp(value, 0f, Props.fuelCapacity); + } + } + + public CompProperties_Refuelable Props => (CompProperties_Refuelable)props; + + public float Fuel => fuel; + + public float FuelPercentOfTarget => fuel / TargetFuelLevel; + + public float FuelPercentOfMax => fuel / Props.fuelCapacity; + + public bool IsFull => TargetFuelLevel - fuel < 1f; + + public bool HasFuel + { + get + { + if (fuel > 0f && fuel >= Props.minimumFueledThreshold) + { + if (!FunctionsInVacuum) + { + return !base.InVacuum; + } + return true; + } + return false; + } + } + + private float ConsumptionRatePerTick => Props.fuelConsumptionRate / 60000f; + + public bool ShouldAutoRefuelNow + { + get + { + if (FuelPercentOfTarget <= Props.autoRefuelPercent && !IsFull && TargetFuelLevel > 0f) + { + return ShouldAutoRefuelNowIgnoringFuelPct; + } + return false; + } + } + + public bool ShouldAutoRefuelNowIgnoringFuelPct + { + get + { + if (!parent.IsBurning() && (flickComp == null || flickComp.SwitchIsOn) && parent.Map.designationManager.DesignationOn(parent, DesignationDefOf.Flick) == null) + { + return parent.Map.designationManager.DesignationOn(parent, DesignationDefOf.Deconstruct) == null; + } + return false; + } + } + + public bool ShouldBeLitNow() + { + return HasFuel; + } + + public override void Initialize(CompProperties props) + { + base.Initialize(props); + allowAutoRefuel = Props.initialAllowAutoRefuel; + fuel = Props.fuelCapacity * Props.initialFuelPercent; + } + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + flickComp = parent.GetComp(); + explosiveComp = parent.GetComp(); + } + + public override void PostExposeData() + { + base.PostExposeData(); + Scribe_Values.Look(ref fuel, "fuel", 0f); + Scribe_Values.Look(ref configuredTargetFuelLevel, "configuredTargetFuelLevel", -1f); + Scribe_Values.Look(ref allowAutoRefuel, "allowAutoRefuel", defaultValue: false); + if (Scribe.mode == LoadSaveMode.PostLoadInit && !Props.showAllowAutoRefuelToggle) + { + allowAutoRefuel = Props.initialAllowAutoRefuel; + } + } + + public override void PostDraw() + { + base.PostDraw(); + if (!allowAutoRefuel) + { + parent.Map.overlayDrawer.DrawOverlay(parent, OverlayTypes.ForbiddenRefuel); + } + else if (!HasFuel && Props.drawOutOfFuelOverlay) + { + parent.Map.overlayDrawer.DrawOverlay(parent, OverlayTypes.OutOfFuel); + } + if (Props.drawFuelGaugeInMap) + { + GenDraw.FillableBarRequest r = default(GenDraw.FillableBarRequest); + r.center = parent.DrawPos + Vector3.up * 0.1f; + r.size = FuelBarSize; + r.fillPercent = FuelPercentOfMax; + r.filledMat = FuelBarFilledMat; + r.unfilledMat = FuelBarUnfilledMat; + r.margin = 0.15f; + Rot4 rotation = parent.Rotation; + rotation.Rotate(RotationDirection.Clockwise); + r.rotation = rotation; + GenDraw.DrawFillableBar(r); + } + } + + public override void PostDestroy(DestroyMode mode, Map previousMap) + { + base.PostDestroy(mode, previousMap); + if ((!Props.fuelIsMortarBarrel || !Find.Storyteller.difficulty.classicMortars) && mode != 0 && previousMap != null && Props.fuelFilter.AllowedDefCount == 1 && Props.initialFuelPercent == 0f) + { + ThingDef thingDef = Props.fuelFilter.AllowedThingDefs.First(); + int num = Mathf.FloorToInt(1f * fuel); + while (num > 0) + { + Thing thing = ThingMaker.MakeThing(thingDef); + thing.stackCount = Mathf.Min(num, thingDef.stackLimit); + num -= thing.stackCount; + GenPlace.TryPlaceThing(thing, parent.Position, previousMap, ThingPlaceMode.Near); + } + } + } + + public override string CompInspectStringExtra() + { + if (Props.fuelIsMortarBarrel && Find.Storyteller.difficulty.classicMortars) + { + return string.Empty; + } + string text = base.CompInspectStringExtra(); + text = ((text != null) ? (text + "\n") : string.Empty); + text = text + Props.FuelLabel + ": " + fuel.ToStringDecimalIfSmall() + " / " + Props.fuelCapacity.ToStringDecimalIfSmall(); + if (!Props.consumeFuelOnlyWhenUsed && HasFuel) + { + int numTicks = (int)(fuel / Props.fuelConsumptionRate * 60000f); + text = text + " (" + numTicks.ToStringTicksToPeriod() + ")"; + } + if (!HasFuel && !Props.outOfFuelMessage.NullOrEmpty()) + { + string arg = ((parent.def.building != null && parent.def.building.IsTurret) ? ("CannotShoot".Translate() + ": " + Props.outOfFuelMessage).Resolve() : Props.outOfFuelMessage); + text += $"\n{arg} ({GetFuelCountToFullyRefuel()}x {Props.fuelFilter.AnyAllowedDef.label})"; + } + if (Props.targetFuelLevelConfigurable) + { + text += "\n" + "ConfiguredTargetFuelLevel".Translate(TargetFuelLevel.ToStringDecimalIfSmall()); + } + return text; + } + + public override IEnumerable SpecialDisplayStats() + { + if (parent.def.building != null && parent.def.building.IsTurret) + { + TaggedString taggedString = "RearmCostExplanation".Translate(); + if (Props.factorByDifficulty) + { + taggedString += " (" + "RearmCostExplanationDifficulty".Translate() + ")"; + } + taggedString += "."; + yield return new StatDrawEntry(StatCategoryDefOf.Building, "RearmCost".Translate(), GenLabel.ThingLabel(Props.fuelFilter.AnyAllowedDef, null, GetFuelCountToFullyRefuel()).CapitalizeFirst(), taggedString, 3171); + } + } + + public override void CompTick() + { + base.CompTick(); + CompPowerTrader comp = parent.GetComp(); + if (!Props.consumeFuelOnlyWhenUsed && (flickComp == null || flickComp.SwitchIsOn) && (!Props.consumeFuelOnlyWhenPowered || (comp != null && comp.PowerOn)) && !Props.externalTicking) + { + ConsumeFuel(ConsumptionRatePerTick); + } + if (Props.fuelConsumptionPerTickInRain > 0f && parent.Spawned && parent.Map.weatherManager.RainRate > 0.4f && !parent.Map.roofGrid.Roofed(parent.Position) && !Props.externalTicking) + { + ConsumeFuel(Props.fuelConsumptionPerTickInRain); + } + } + + public void ConsumeFuel(float amount) + { + if ((!Props.fuelIsMortarBarrel || !Find.Storyteller.difficulty.classicMortars) && !(fuel <= 0f)) + { + fuel -= amount; + if (fuel <= 0f) + { + fuel = 0f; + Notify_RanOutOfFuel(); + } + } + } + + private void Notify_RanOutOfFuel() + { + if (Props.destroyOnNoFuel) + { + parent.Destroy(); + } + parent.BroadcastCompSignal("RanOutOfFuel"); + } + + public void Refuel(List fuelThings) + { + if (Props.atomicFueling && fuelThings.Sum((Thing t) => t.stackCount) < GetFuelCountToFullyRefuel()) + { + Log.ErrorOnce("Error refueling; not enough fuel available for proper atomic refuel", 19586442); + return; + } + int num = GetFuelCountToFullyRefuel(); + while (num > 0 && fuelThings.Count > 0) + { + Thing thing = fuelThings.Pop(); + int num2 = Mathf.Min(num, thing.stackCount); + Refuel(num2); + thing.SplitOff(num2).Destroy(); + num -= num2; + } + } + + public void Refuel(float amount) + { + fuel += amount * Props.FuelMultiplierCurrentDifficulty; + if (fuel > Props.fuelCapacity) + { + fuel = Props.fuelCapacity; + } + parent.BroadcastCompSignal("Refueled"); + } + + public AcceptanceReport CanEjectFuel() + { + CompExplosive compExplosive = explosiveComp; + if (compExplosive != null && compExplosive.wickStarted) + { + return "AboutToExplode".Translate(); + } + if (Fuel == 0f) + { + return "RefuelableNoFuelToEject".Translate(); + } + return true; + } + + public void EjectFuel() + { + ThingDef thingDef = Props.fuelFilter.AllowedThingDefs.First(); + int num = Mathf.FloorToInt(fuel); + while (num > 0) + { + Thing thing = ThingMaker.MakeThing(thingDef); + thing.stackCount = Mathf.Min(num, thingDef.stackLimit); + num -= thing.stackCount; + GenPlace.TryPlaceThing(thing, parent.Position, parent.Map, ThingPlaceMode.Near); + thing.SetForbidden(value: true); + } + fuel = 0f; + Notify_RanOutOfFuel(); + } + + public void Notify_UsedThisTick() + { + ConsumeFuel(ConsumptionRatePerTick); + } + + public int GetFuelCountToFullyRefuel() + { + if (Props.atomicFueling) + { + return Mathf.CeilToInt(Props.fuelCapacity / Props.FuelMultiplierCurrentDifficulty); + } + return Mathf.Max(Mathf.CeilToInt((TargetFuelLevel - fuel) / Props.FuelMultiplierCurrentDifficulty), 1); + } + + public override IEnumerable CompGetGizmosExtra() + { + if (Props.fuelIsMortarBarrel && Find.Storyteller.difficulty.classicMortars) + { + yield break; + } + if (!Props.hideGizmosIfNotPlayerFaction || parent.Faction == Faction.OfPlayer) + { + if (Find.Selector.SelectedObjects.Count == 1) + { + yield return new Gizmo_SetFuelLevel(this); + } + else + { + if (Props.targetFuelLevelConfigurable) + { + Command_SetTargetFuelLevel command_SetTargetFuelLevel = new Command_SetTargetFuelLevel(); + command_SetTargetFuelLevel.refuelable = this; + command_SetTargetFuelLevel.defaultLabel = "CommandSetTargetFuelLevel".Translate(); + command_SetTargetFuelLevel.defaultDesc = "CommandSetTargetFuelLevelDesc".Translate(); + command_SetTargetFuelLevel.icon = SetTargetFuelLevelCommand; + yield return command_SetTargetFuelLevel; + } + if (Props.showAllowAutoRefuelToggle) + { + string str = (allowAutoRefuel ? "On".Translate() : "Off".Translate()); + Command_Toggle command_Toggle = new Command_Toggle(); + command_Toggle.isActive = () => allowAutoRefuel; + command_Toggle.toggleAction = delegate + { + allowAutoRefuel = !allowAutoRefuel; + }; + command_Toggle.defaultLabel = "CommandToggleAllowAutoRefuel".Translate(); + command_Toggle.defaultDesc = "CommandToggleAllowAutoRefuelDescMult".Translate(str.UncapitalizeFirst().Named("ONOFF")); + command_Toggle.icon = (allowAutoRefuel ? TexCommand.ForbidOn : TexCommand.ForbidOff); + command_Toggle.Order = 20f; + command_Toggle.hotKey = KeyBindingDefOf.Command_ItemForbid; + yield return command_Toggle; + } + } + } + if (DebugSettings.ShowDevGizmos) + { + Command_Action command_Action = new Command_Action(); + command_Action.defaultLabel = "DEV: Set fuel to 0"; + command_Action.action = delegate + { + fuel = 0f; + parent.BroadcastCompSignal("Refueled"); + }; + yield return command_Action; + Command_Action command_Action2 = new Command_Action(); + command_Action2.defaultLabel = "DEV: Set fuel to 0.1"; + command_Action2.action = delegate + { + fuel = 0.1f; + parent.BroadcastCompSignal("Refueled"); + }; + yield return command_Action2; + Command_Action command_Action3 = new Command_Action(); + command_Action3.defaultLabel = "DEV: Fuel -20%"; + command_Action3.action = delegate + { + ConsumeFuel(Props.fuelCapacity * 0.2f); + }; + yield return command_Action3; + Command_Action command_Action4 = new Command_Action(); + command_Action4.defaultLabel = "DEV: Set fuel to max"; + command_Action4.action = delegate + { + fuel = Props.fuelCapacity; + parent.BroadcastCompSignal("Refueled"); + }; + yield return command_Action4; + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Odyssey\Defs\ThingDefs_Buildings\Buildings_Gravship.xml` +**相似度:** 0.5864 + +```xml + ChemfuelTank + + A chemfuel storage tank that supplies fuel for thrusters on a gravship. + + Graphic_Multi + Things/Building/ChemfuelTank/ChemfuelTank + (2, 2) + + + 200 + 30 + 1 + -10 + 2000 + + (2, 2) + + 120 + + +
  • BasicGravtech
  • +
    + +
  • + 250 + true + 250 + + +
  • Chemfuel
  • + + + Chemfuel + Chemfuel + true + 1 + true + false + true + true + false + +
    +
    + + + LargeChemfuelTank +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\ThingDefs_Buildings\Buildings_Power.xml` +**相似度:** 0.5793 + +```xml + WoodFiredGenerator + + Produces power by consuming wood. Must be periodically loaded with wood fuel by hand. + Building + MapMeshAndRealTime + + Things/Building/Power/WoodFiredGenerator + Graphic_Single + (2,2) + + (1.93,1,1.69) + (-0.03,0,-0.1) + + + Building + PassThroughOnly + 0.9 + 50 + false + true + false + + 300 + 2500 + 1.0 + -20 + + Normal + false + (2,2) + + BuildingDestroyed_Metal_Medium + + + 100 + 2 + + +
  • + CompPowerPlant + -1000 + true + WoodFiredGenerator_Ambience +
  • +
  • +
  • + 22.0 + 75.0 + + +
  • WoodLog
  • + + + true + true + +
  • + 6 + (217,112,33,0) +
  • +
  • + CompHeatPusherPowered + 6 +
  • +
  • +
  • + true + +
  • EMP
  • + + +
    + Medium + Power + 2100 + Misc3 + ConstructMetal + +
  • Electricity
  • +
    + 4 +
    + + + ChemfuelPoweredGenerator +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Biotech\Defs\ThingDefs_Buildings\Buildings_Deathrest.xml` +**相似度:** 0.5764 + +```xml + + +
  • + CompPowerTrader + 100 + 0 + true +
  • +
  • +
  • + 0.5 + 5 + Hemogen + + +
  • HemogenPack
  • + + + 1 + true + true + 0.05 + true + +
    +
    +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\ThingDefs_Buildings\Buildings_Temperature.xml` +**相似度:** 0.5668 + +```xml + BulletImpact_Ground + false + 0 + +
  • PlaceWorker_PreventInteractionSpotOverlap
  • +
  • PlaceWorker_Heater
  • +
  • PlaceWorker_GlowRadius
  • +
    + true + +
  • + 10.0 + 20.0 + 0.0006 + + +
  • WoodLog
  • + + + 1 + true + false + +
  • + 10 + (252,187,113,0) +
  • +
  • + CompHeatPusherPowered + 21 + 28 +
  • +
  • + 1 +
  • +
  • + CompGatherSpot +
  • +
  • + MeditationFocusStrength +
  • Flame
  • + +
  • + 0.12 +
  • +
  • + +
  • Campfire
  • +
  • TorchLamp
  • +
  • Brazier
  • +
  • DarklightBrazier
  • +
  • Darktorch
  • +
  • DarktorchFungus
  • + + 0.02 + 9.9 + 8 + MeditationFocusPerFlame + MeditationFocusPerFlameAbstract + +
    + +
    + Temperature + Misc1 + True + (0,0,-1) + +
  • CookMealSimple
  • +
  • CookMealSimpleBulk
  • +
  • Make_Pemmican
  • +
  • Make_PemmicanBulk
  • +
  • BurnApparel
  • +
  • BurnWeapon
  • +
  • BurnDrugs
  • +
  • Make_BabyFood
  • +
  • Make_BabyFoodBulk
  • +
    + +
  • ITab_Bills
  • +
    + + true + BillsTab + false + BuildingDestroyed_Wood_Small + +
    + + + PassiveCooler + + A traditional unpowered cooler that works by water evaporation. Must be regularly replenished with wood. Not efficient enough to refrigerate food. + Building + + Things/Building/Misc/PassiveCooler + Graphic_Single + false + false + true + + (0.9,0.3,0.9) + + + (0.2,0,0.6,0.1) + + + false + Building + PassThroughOnly + 30 + ConstructDirt + Normal + RealtimeOnly + 0.40 + + 80 + 200 + 1 + + true + + 50 + + + BuildingDestroyed_Metal_Small + + BulletImpact_Ground +``` \ No newline at end of file diff --git a/MCP/vector_cache/CryptosleepCasket.txt b/MCP/vector_cache/CryptosleepCasket.txt new file mode 100644 index 00000000..5502f0c1 --- /dev/null +++ b/MCP/vector_cache/CryptosleepCasket.txt @@ -0,0 +1,267 @@ +根据向量相似度分析,与 'CryptosleepCasket' 最相关的代码定义如下: + +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\RoomContents_CryptosleepCasket.txt` +**相似度:** 0.7176 + +```csharp +public class RoomContents_CryptosleepCasket : RoomContentsWorker +{ + private const string OpenedSignal = "OpenedSignal"; + + public override void FillRoom(Map map, LayoutRoom room, Faction faction, float? threatPoints = null) + { + if (!room.TryGetRandomCellInRoom(map, out var cell, 3)) + { + cell = room.rects[0].CenterCell; + } + int nextAncientCryptosleepCasketGroupID = Find.UniqueIDsManager.GetNextAncientCryptosleepCasketGroupID(); + PodContentsType type = Gen.RandomEnumValue(disallowFirstValue: true); + Building_AncientCryptosleepCasket pod = RoomGenUtility.SpawnCryptoCasket(cell, map, Rot4.Random, nextAncientCryptosleepCasketGroupID, type, ThingSetMakerDefOf.MapGen_ScarlandsAncientPodContents); + ThreatSignal = "OpenedSignal" + Find.UniqueIDsManager.GetNextSignalTagID(); + RoomGenUtility.SpawnOpenCryptoCasketSignal(pod, map, ThreatSignal); + base.FillRoom(map, room, faction, threatPoints); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\Building_AncientCryptosleepPod.txt` +**相似度:** 0.7115 + +```csharp +public class Building_AncientCryptosleepPod : Building_AncientCryptosleepCasket +{ + public override IEnumerable GetFloatMenuOptions(Pawn myPawn) + { + return Enumerable.Empty(); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\Building_AncientCryptosleepCasket.txt` +**相似度:** 0.7023 + +```csharp +public class Building_AncientCryptosleepCasket : Building_CryptosleepCasket +{ + public int groupID = -1; + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref groupID, "groupID", 0); + } + + public override void PreApplyDamage(ref DamageInfo dinfo, out bool absorbed) + { + base.PreApplyDamage(ref dinfo, out absorbed); + if (absorbed) + { + return; + } + if (!contentsKnown && innerContainer.Count > 0 && dinfo.Def.harmsHealth && dinfo.Instigator != null && dinfo.Instigator.Faction != null) + { + bool flag = false; + foreach (Thing item in (IEnumerable)innerContainer) + { + if (item is Pawn) + { + flag = true; + break; + } + } + if (flag) + { + EjectContents(); + } + } + absorbed = false; + } + + public override void EjectContents() + { + bool num = contentsKnown; + List list = null; + if (!num) + { + list = new List(); + list.AddRange(innerContainer); + list.AddRange(UnopenedCasketsInGroup().SelectMany((Building_AncientCryptosleepCasket c) => c.innerContainer)); + list.RemoveDuplicates(); + } + base.EjectContents(); + if ((bool)ClaimableBy(Faction.OfPlayer)) + { + SetFaction(null); + } + if (num) + { + return; + } + ThingDef filth_Slime = ThingDefOf.Filth_Slime; + FilthMaker.TryMakeFilth(base.Position, base.Map, filth_Slime, Rand.Range(8, 12)); + foreach (Building_AncientCryptosleepCasket item in UnopenedCasketsInGroup()) + { + item.contentsKnown = true; + item.EjectContents(); + } + IEnumerable enumerable = from p in list.OfType().ToList() + where p.RaceProps.Humanlike && p.GetLord() == null && p.Faction == Faction.OfAncientsHostile + select p; + if (enumerable.Any()) + { + LordMaker.MakeNewLord(Faction.OfAncientsHostile, new LordJob_AssaultColony(Faction.OfAncientsHostile, canKidnap: false, canTimeoutOrFlee: true, sappers: false, useAvoidGridSmart: false, canSteal: false), base.Map, enumerable); + } + } + + private IEnumerable UnopenedCasketsInGroup() + { + yield return this; + if (groupID == -1) + { + yield break; + } + foreach (Thing item in base.Map.listerThings.ThingsOfDef(ThingDefOf.AncientCryptosleepCasket)) + { + Building_AncientCryptosleepCasket building_AncientCryptosleepCasket = item as Building_AncientCryptosleepCasket; + if (building_AncientCryptosleepCasket.groupID == groupID && !building_AncientCryptosleepCasket.contentsKnown) + { + yield return building_AncientCryptosleepCasket; + } + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\ComplexThreatWorker_CryptosleepPods.txt` +**相似度:** 0.6424 + +```csharp +public class ComplexThreatWorker_CryptosleepPods : ComplexThreatWorker +{ + private const string TriggerOpenAction = "TriggerOpenAction"; + + private const string CompletedOpenAction = "CompletedOpenAction"; + + private const float RoomEntryTriggerChance = 0.25f; + + protected override bool CanResolveInt(ComplexResolveParams parms) + { + if (base.CanResolveInt(parms) && ComplexUtility.TryFindRandomSpawnCell(ThingDefOf.AncientCryptosleepPod, parms.room, parms.map, out var _) && parms.points >= PawnKindDefOf.AncientSoldier.combatPower) + { + if (parms.hostileFaction != null) + { + return parms.hostileFaction == Faction.OfAncientsHostile; + } + return true; + } + return false; + } + + protected override void ResolveInt(ComplexResolveParams parms, ref float threatPointsUsed, List outSpawnedThings) + { + List list = SpawnCasketsWithHostiles(parms.room, parms.points, parms.triggerSignal, parms.map); + SignalAction_OpenCasket signalAction_OpenCasket = (SignalAction_OpenCasket)ThingMaker.MakeThing(ThingDefOf.SignalAction_OpenCasket); + signalAction_OpenCasket.signalTag = parms.triggerSignal; + signalAction_OpenCasket.caskets.AddRange(list); + signalAction_OpenCasket.completedSignalTag = "CompletedOpenAction" + Find.UniqueIDsManager.GetNextSignalTagID(); + if (parms.delayTicks.HasValue) + { + signalAction_OpenCasket.delayTicks = parms.delayTicks.Value; + SignalAction_Message obj = (SignalAction_Message)ThingMaker.MakeThing(ThingDefOf.SignalAction_Message); + obj.signalTag = parms.triggerSignal; + obj.lookTargets = list; + obj.messageType = MessageTypeDefOf.ThreatBig; + obj.message = "MessageSleepingThreatDelayActivated".Translate(Faction.OfAncientsHostile, signalAction_OpenCasket.delayTicks.ToStringTicksToPeriod()); + GenSpawn.Spawn(obj, parms.room.rects[0].CenterCell, parms.map); + } + GenSpawn.Spawn(signalAction_OpenCasket, parms.map.Center, parms.map); + for (int i = 0; i < list.Count; i++) + { + if (!(list[i] is Building_Casket building_Casket)) + { + continue; + } + foreach (Thing item in (IEnumerable)building_Casket.GetDirectlyHeldThings()) + { + if (item is Pawn pawn) + { + threatPointsUsed += pawn.kindDef.combatPower; + } + } + } + SignalAction_Message obj2 = (SignalAction_Message)ThingMaker.MakeThing(ThingDefOf.SignalAction_Message); + obj2.signalTag = signalAction_OpenCasket.completedSignalTag; + obj2.lookTargets = list; + obj2.messageType = MessageTypeDefOf.ThreatBig; + obj2.message = "MessageSleepingPawnsWokenUp".Translate(Faction.OfAncientsHostile.def.pawnsPlural.CapitalizeFirst()); + GenSpawn.Spawn(obj2, parms.room.rects[0].CenterCell, parms.map); + } + + private List SpawnCasketsWithHostiles(LayoutRoom room, float threatPoints, string openSignal, Map map) + { + int num = Mathf.FloorToInt(threatPoints / PawnKindDefOf.AncientSoldier.combatPower); + List list = new List(); + for (int i = 0; i < num; i++) + { + if (!ComplexUtility.TryFindRandomSpawnCell(ThingDefOf.AncientCryptosleepPod, room, map, out var spawnPosition)) + { + break; + } + Building_AncientCryptosleepPod building_AncientCryptosleepPod = (Building_AncientCryptosleepPod)GenSpawn.Spawn(ThingDefOf.AncientCryptosleepPod, spawnPosition, map); + building_AncientCryptosleepPod.groupID = Find.UniqueIDsManager.GetNextAncientCryptosleepCasketGroupID(); + building_AncientCryptosleepPod.openedSignal = openSignal; + ThingSetMakerParams parms = default(ThingSetMakerParams); + parms.podContentsType = PodContentsType.AncientHostile; + List list2 = ThingSetMakerDefOf.MapGen_AncientPodContents.root.Generate(parms); + for (int j = 0; j < list2.Count; j++) + { + Pawn pawn = list2[j] as Pawn; + if (!building_AncientCryptosleepPod.TryAcceptThing(list2[j], allowSpecialEffects: false)) + { + if (pawn != null) + { + Find.WorldPawns.PassToWorld(pawn, PawnDiscardDecideMode.Discard); + } + else + { + list2[i].Destroy(); + } + } + } + list.Add(building_AncientCryptosleepPod); + } + return list; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\ThingDefs_Buildings\Buildings_Ancient_Active.xml` +**相似度:** 0.6040 + +```xml + + AncientCryptosleepPod + + Building_AncientCryptosleepPod + true + A single-use pod for preserving one person in a state of suspended animation. Unlike cryptosleep caskets, cryptosleep pods can only be used once. + + Things/Building/Ruins/AncientCryptosleepPod + Graphic_Multi + + + false + false + + + false + + 2000 + 200 + + + + + +``` \ No newline at end of file diff --git a/MCP/vector_cache/HediffDef-Luciferium.txt b/MCP/vector_cache/HediffDef-Luciferium.txt new file mode 100644 index 00000000..b421e522 --- /dev/null +++ b/MCP/vector_cache/HediffDef-Luciferium.txt @@ -0,0 +1,118 @@ +根据向量相似度分析,与 'HediffDef, Luciferium' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\Drugs\Luciferium.xml` + +```xml + Luciferium + + A concoction of mechanites that dramatically improve the body's functioning in all respects. Over time, it can even heal old scarred-over wounds or brain damage, though it cannot regenerate lost limbs. Unfortunately, without the moderating effects of regular doses every five or six days, the mechanites lose cohesion, causing continuous berserk rages and, eventually, death.\n\nAfter the first dose, there is no way to get the mechanites out, ever.\n\nOn the urbworlds, they call Luciferium the 'Devil's Bargain'. Many have been forced to kill friends when no more of the seductive red pills could be found. + + LuciferiumHigh + LuciferiumAddiction + + + Things/Item/Drug/Luciferium + Graphic_StackCount + + false + + 70 + 0.01 + + Ultra + 10 + + Medical + +
  • + LuciferiumHigh + 1.00 + true +
  • +
    +
    + +
  • + Luciferium + 1.00 + 0.9 + 1010 +
  • +
    + +
  • ExoticMisc
  • +
    +
  • RewardStandardCore
  • + 50 +
    + + + LuciferiumHigh +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Anomaly\Defs\Misc\Mutants.xml` +**相似度:** 0.5154 + +```xml + + +
  • AllWork
  • +
  • Shooting
  • +
    + true + false + false + + true + true + true + true + true + true + true + true + true + true + true + true + false + true + true + true + true + true + true + false + false + +
  • CryptosleepSickness
  • +
  • LuciferiumHigh
  • +
  • LuciferiumAddiction
  • +
  • Scaria
  • +
  • CorpseTorment
  • +
  • CubeInterest
  • +
  • CubeWithdrawal
  • +
  • CubeComa
  • +
  • CubeRage
  • +
  • HeartAttack
  • +
  • Scaria
  • +
  • PsychicAmplifier
  • +
  • MechlinkImplant
  • +
  • PregnantHuman
  • +
  • PregnancyLabor
  • +
  • HemogenAmplified
  • +
  • DeathrestExhaustion
  • +
  • InterruptedDeathrest
  • +
  • HemogenCraving
  • +
  • Deathrest
  • +
  • RegenerationComa
  • +
  • PostpartumExhaustion
  • +
  • Inhumanized
  • +
    + +
  • Hemogenic
  • +
  • Deathrest
  • +
    +
    +``` \ No newline at end of file diff --git a/MCP/vector_cache/HediffDef-Malnutrition.txt b/MCP/vector_cache/HediffDef-Malnutrition.txt new file mode 100644 index 00000000..b318bf38 --- /dev/null +++ b/MCP/vector_cache/HediffDef-Malnutrition.txt @@ -0,0 +1,750 @@ +根据向量相似度分析,与 'HediffDef, Malnutrition' 最相关的代码定义如下: + +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\HediffDefs\Hediffs_Global_Needs.xml` +**相似度:** 0.8237 + +```xml + + Malnutrition + + Abnormally low body fat and weight, typically caused by lack of food. Malnutrition is always very unpleasant, but its initial effects are mild. Without food, though, a malnourished creature will waste away, losing muscle mass and capacities. Malnutrition ends with death. Upon re-feeding malnutrition naturally recovers over time. Malnourished creatures have larger appetites than normal. + 1 + true + +
  • + + 1.5 + 0.5 + +
  • + Consciousness + -0.05 +
  • + + +
  • + 0.2 + + 2 + 0.6 + +
  • + Consciousness + -0.10 +
  • + + +
  • + 0.4 + + 2.5 + 0.6 + +
  • + Consciousness + -0.20 +
  • + + +
  • + 0.6 + + 3 + 0.6 + +
  • + Consciousness + -0.30 +
  • + + +
  • + 0.8 + + true + 0.6 + +
  • + Consciousness + 0.1 +
  • + + +
    +
    +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\StatPart_Malnutrition.txt` +**相似度:** 0.7310 + +```csharp +public class StatPart_Malnutrition : StatPart +{ + private SimpleCurve curve; + + public override void TransformValue(StatRequest req, ref float val) + { + if (TryGetMalnutritionFactor(req, out var _, out var factor)) + { + val *= factor; + } + } + + public override string ExplanationPart(StatRequest req) + { + if (TryGetMalnutritionFactor(req, out var malnutritionSeverity, out var factor)) + { + return "StatsReport_Malnutrition".Translate(malnutritionSeverity.ToStringPercent()) + ": x" + factor.ToStringPercent(); + } + return null; + } + + private bool TryGetMalnutritionFactor(StatRequest req, out float malnutritionSeverity, out float factor) + { + factor = 0f; + malnutritionSeverity = 0f; + if (!req.HasThing || !(req.Thing is Pawn pawn)) + { + return false; + } + Hediff firstHediffOfDef = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.Malnutrition); + if (firstHediffOfDef == null) + { + return false; + } + malnutritionSeverity = firstHediffOfDef.Severity; + factor = curve.Evaluate(malnutritionSeverity); + return true; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\Need_Food.txt` +**相似度:** 0.6580 + +```csharp +public class Need_Food : Need +{ + public int lastNonStarvingTick = -99999; + + public const float BaseFoodFallPerTick = 2.6666667E-05f; + + private const float BaseMalnutritionSeverityPerDay = 0.453f; + + private const float BaseMalnutritionSeverityPerInterval = 0.0011325f; + + private CompHoldingPlatformTarget platformComp; + + public bool Starving => CurCategory == HungerCategory.Starving; + + public float PercentageThreshUrgentlyHungry => pawn.RaceProps.FoodLevelPercentageWantEat * 0.4f; + + public float PercentageThreshHungry => pawn.RaceProps.FoodLevelPercentageWantEat * 0.8f; + + public float NutritionBetweenHungryAndFed => (1f - PercentageThreshHungry) * MaxLevel; + + private CompHoldingPlatformTarget PlatformTarget => platformComp ?? (platformComp = pawn.TryGetComp()); + + public HungerCategory CurCategory + { + get + { + if (base.CurLevelPercentage <= 0f) + { + return HungerCategory.Starving; + } + if (base.CurLevelPercentage < PercentageThreshUrgentlyHungry) + { + return HungerCategory.UrgentlyHungry; + } + if (base.CurLevelPercentage < PercentageThreshHungry) + { + return HungerCategory.Hungry; + } + return HungerCategory.Fed; + } + } + + public float FoodFallPerTick => FoodFallPerTickAssumingCategory(CurCategory); + + public int TicksUntilHungryWhenFed => Mathf.CeilToInt(NutritionBetweenHungryAndFed / FoodFallPerTickAssumingCategory(HungerCategory.Fed)); + + public int TicksUntilHungryWhenFedIgnoringMalnutrition => Mathf.CeilToInt(NutritionBetweenHungryAndFed / FoodFallPerTickAssumingCategory(HungerCategory.Fed, ignoreMalnutrition: true)); + + public override int GUIChangeArrow + { + get + { + if (GainingFood()) + { + return 1; + } + if (!(FoodFallPerTickAssumingCategory(HungerCategory.Hungry) > 0f)) + { + return 0; + } + return -1; + } + } + + public override float MaxLevel + { + get + { + if (Current.ProgramState != ProgramState.Playing) + { + return pawn.BodySize * pawn.ageTracker.CurLifeStage.foodMaxFactor; + } + return pawn.GetStatValue(StatDefOf.MaxNutrition, applyPostProcess: true, 15); + } + } + + public float NutritionWanted => MaxLevel - CurLevel; + + public int TicksStarving => Mathf.Max(0, Find.TickManager.TicksGame - lastNonStarvingTick); + + private float MalnutritionSeverityPerInterval => 0.0011325f * Mathf.Lerp(0.8f, 1.2f, Rand.ValueSeeded(pawn.thingIDNumber ^ 0x26EF7A)); + + protected override bool IsFrozen + { + get + { + if (!base.IsFrozen && !pawn.Deathresting) + { + return PlatformTarget?.CurrentlyHeldOnPlatform ?? false; + } + return true; + } + } + + public Need_Food(Pawn pawn) + : base(pawn) + { + } + + public bool GainingFood() + { + if (pawn.jobs?.curDriver is IEatingDriver { GainingNutritionNow: not false }) + { + return true; + } + if (ModsConfig.BiotechActive && ChildcareUtility.CanSuckle(pawn, out var _) && pawn.CarriedBy?.jobs.curDriver is JobDriver_FeedBaby { Feeding: not false }) + { + return true; + } + return false; + } + + public float FoodFallPerTickAssumingCategory(HungerCategory hunger, bool ignoreMalnutrition = false) + { + Building_Bed building_Bed = pawn.CurrentBed(); + float num = BaseHungerRate(pawn.ageTracker.CurLifeStage, pawn.def) * hunger.HungerMultiplier() * pawn.health.hediffSet.GetHungerRateFactor(ignoreMalnutrition ? HediffDefOf.Malnutrition : null) * (pawn.story?.traits?.HungerRateFactor ?? 1f) * (building_Bed?.GetStatValue(StatDefOf.BedHungerRateFactor) ?? 1f); + if (ModsConfig.BiotechActive) + { + Hediff firstHediffOfDef = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.Lactating); + if (firstHediffOfDef != null) + { + HediffComp_Lactating hediffComp_Lactating = firstHediffOfDef.TryGetComp(); + if (hediffComp_Lactating != null) + { + num += hediffComp_Lactating.AddedNutritionPerDay() / 60000f; + } + } + } + if (ModsConfig.BiotechActive && pawn.genes != null) + { + int num2 = 0; + foreach (Gene item in pawn.genes.GenesListForReading) + { + if (!item.Overridden) + { + num2 += item.def.biostatMet; + } + } + num *= GeneTuning.MetabolismToFoodConsumptionFactorCurve.Evaluate(num2); + } + if (ModsConfig.AnomalyActive) + { + CompHoldingPlatformTarget platformTarget = PlatformTarget; + if (platformTarget != null && platformTarget.CurrentlyHeldOnPlatform) + { + num = 0f; + } + } + return num; + } + + public override void NeedInterval() + { + if (!IsFrozen) + { + CurLevel -= FoodFallPerTick * 150f; + } + if (!Starving) + { + lastNonStarvingTick = Find.TickManager.TicksGame; + } + if (!IsFrozen || pawn.Deathresting) + { + if (Starving) + { + HealthUtility.AdjustSeverity(pawn, HediffDefOf.Malnutrition, MalnutritionSeverityPerInterval); + } + else + { + HealthUtility.AdjustSeverity(pawn, HediffDefOf.Malnutrition, 0f - MalnutritionSeverityPerInterval); + } + } + } + + public override void SetInitialLevel() + { + StatDefOf.MaxNutrition.Worker.ClearCacheForThing(pawn); + base.CurLevelPercentage = (pawn.RaceProps.Humanlike ? 0.8f : Rand.Range(0.5f, 0.9f)); + if (Current.ProgramState == ProgramState.Playing) + { + lastNonStarvingTick = Find.TickManager.TicksGame; + } + } + + public override void OnNeedRemoved() + { + if (pawn.health.hediffSet.TryGetHediff(HediffDefOf.Malnutrition, out var hediff)) + { + pawn.health.RemoveHediff(hediff); + } + } + + public override string GetTipString() + { + return (base.LabelCap + ": " + base.CurLevelPercentage.ToStringPercent()).Colorize(ColoredText.TipSectionTitleColor) + " (" + CurLevel.ToString("0.##") + " / " + MaxLevel.ToString("0.##") + ")\n" + def.description; + } + + public override void DrawOnGUI(Rect rect, int maxThresholdMarkers = int.MaxValue, float customMargin = -1f, bool drawArrows = true, bool doTooltip = true, Rect? rectForTooltip = null, bool drawLabel = true) + { + if (threshPercents == null) + { + threshPercents = new List(); + } + threshPercents.Clear(); + threshPercents.Add(PercentageThreshHungry); + threshPercents.Add(PercentageThreshUrgentlyHungry); + base.DrawOnGUI(rect, maxThresholdMarkers, customMargin, drawArrows, doTooltip, rectForTooltip, drawLabel); + } + + public static float BaseHungerRate(LifeStageDef lifeStage, ThingDef pawnDef) + { + return lifeStage.hungerRateFactor * pawnDef.race.baseHungerRate * 2.6666667E-05f; + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref lastNonStarvingTick, "lastNonStarvingTick", -99999); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\HediffDefOf.txt` +**相似度:** 0.6514 + +```csharp +public static class HediffDefOf +{ + public static HediffDef Cut; + + public static HediffDef SurgicalCut; + + public static HediffDef ExecutionCut; + + public static HediffDef Bite; + + public static HediffDef MissingBodyPart; + + public static HediffDef Misc; + + [MayRequireBiotech] + public static HediffDef BloodfeederMark; + + [MayRequireAnomaly] + public static HediffDef Decayed; + + [MayRequireAnomaly] + public static HediffDef Digested; + + [MayRequireOdyssey] + public static HediffDef PorcupineQuill; + + public static HediffDef BloodLoss; + + public static HediffDef Hypothermia; + + public static HediffDef Heatstroke; + + public static HediffDef Malnutrition; + + public static HediffDef ToxicBuildup; + + public static HediffDef PsychicShock; + + public static HediffDef ResurrectionSickness; + + public static HediffDef ResurrectionPsychosis; + + [MayRequireBiotech] + public static HediffDef PollutionStimulus; + + [MayRequireBiotech] + public static HediffDef ToxGasExposure; + + [MayRequireAnomaly] + public static HediffDef Shambler; + + [MayRequireAnomaly] + public static HediffDef ShamblerCorpse; + + [MayRequireAnomaly] + public static HediffDef Rising; + + [MayRequireAnomaly] + public static HediffDef DeathRefusal; + + [MayRequireAnomaly] + public static HediffDef DeathRefusalSickness; + + [MayRequireAnomaly] + public static HediffDef MetalhorrorImplant; + + [MayRequireAnomaly] + public static HediffDef MetalhorrorSpeedBoost; + + [MayRequireAnomaly] + public static HediffDef PsychicTrance; + + [MayRequireAnomaly] + public static HediffDef DuplicateSickness; + + [MayRequireAnomaly] + public static HediffDef VoidTouched; + + [MayRequireAnomaly] + public static HediffDef MeatHunger; + + [MayRequireAnomaly] + public static HediffDef ShardHolder; + + [MayRequireAnomaly] + public static HediffDef Inhumanized; + + [MayRequireAnomaly] + public static HediffDef DarknessExposure; + + [MayRequireAnomaly] + public static HediffDef LightExposure; + + [MayRequireAnomaly] + public static HediffDef DisruptorFlash; + + [MayRequireOdyssey] + public static HediffDef VacuumExposure; + + [MayRequireOdyssey] + public static HediffDef PsilocapHigh; + + [MayRequireOdyssey] + public static HediffDef GravNausea; + + [MayRequireOdyssey] + public static HediffDef VolcanicAsh; + + public static HediffDef Anesthetic; + + public static HediffDef CryptosleepSickness; + + public static HediffDef FoodPoisoning; + + public static HediffDef Pregnant; + + [MayRequireBiotech] + public static HediffDef PregnantHuman; + + [MayRequireBiotech] + public static HediffDef MorningSickness; + + [MayRequireBiotech] + public static HediffDef PregnancyMood; + + [MayRequireBiotech] + public static HediffDef PregnancyLabor; + + [MayRequireBiotech] + public static HediffDef PregnancyLaborPushing; + + [MayRequireBiotech] + public static HediffDef OvumExtracted; + + [MayRequireBiotech] + public static HediffDef VatLearning; + + [MayRequireBiotech] + public static HediffDef VatGrowing; + + public static HediffDef CatatonicBreakdown; + + public static HediffDef Scaria; + + [MayRequireIdeology] + public static HediffDef Scarification; + + [MayRequireIdeology] + public static HediffDef NeuralSupercharge; + + [MayRequireIdeology] + public static HediffDef BiosculptingSickness; + + [MayRequireRoyalty] + public static HediffDef PsychicEntropy; + + [MayRequireRoyalty] + public static HediffDef PsychicHangover; + + [MayRequireRoyalty] + public static HediffDef PsychicSuppression; + + [MayRequireRoyalty] + public static HediffDef Abasia; + + [MayRequireRoyalty] + public static HediffDef PsychicLove; + + public static HediffDef Sterilized; + + [MayRequireBiotech] + public static HediffDef Vasectomy; + + [MayRequireBiotech] + public static HediffDef ImplantedIUD; + + [MayRequireIdeology] + public static HediffDef WorkFocus; + + [MayRequireBiotech] + public static HediffDef ScanningSickness; + + [MayRequireBiotech] + public static HediffDef PsychicBond; + + [MayRequireBiotech] + public static HediffDef PsychicBondTorn; + + public static HediffDef LungRot; + + public static HediffDef LungRotExposure; + + public static HediffDef CoveredInFirefoam; + + [MayRequireAnomaly] + public static HediffDef BioferriteExtracted; + + public static HediffDef Plague; + + public static HediffDef WoundInfection; + + public static HediffDef ScariaInfection; + + public static HediffDef AlcoholHigh; + + public static HediffDef Hangover; + + public static HediffDef DrugOverdose; + + public static HediffDef WakeUpTolerance; + + public static HediffDef GoJuiceTolerance; + + public static HediffDef Blindness; + + public static HediffDef Carcinoma; + + public static HediffDef Dementia; + + public static HediffDef OrganDecay; + + [MayRequireBiotech] + public static HediffDef DetoxifierLung; + + [MayRequireRoyalty] + public static HediffDef LoveEnhancer; + + [MayRequireRoyalty] + public static HediffDef PsychicAmplifier; + + [MayRequireRoyalty] + public static HediffDef PsychicHarmonizer; + + [MayRequireBiotech] + public static HediffDef MechlinkImplant; + + [MayRequireBiotech] + public static HediffDef SelfShutdown; + + [MayRequireBiotech] + public static HediffDef InterruptedDeathrest; + + [MayRequireBiotech] + public static HediffDef InfantIllness; + + [MayRequireBiotech] + public static HediffDef Stillborn; + + [MayRequireBiotech] + public static HediffDef PostpartumExhaustion; + + [MayRequireBiotech] + public static HediffDef Lactating; + + [MayRequireBiotech] + public static HediffDef RegenerationComa; + + [MayRequireBiotech] + public static HediffDef XenogermLossShock; + + [MayRequireBiotech] + public static HediffDef XenogermReplicating; + + [MayRequireBiotech] + public static HediffDef GeneticDrugNeed; + + [MayRequireBiotech] + public static HediffDef BioStarvation; + + [MayRequireBiotech] + public static HediffDef XenogerminationComa; + + [MayRequireBiotech] + public static HediffDef Deathrest; + + [MayRequireBiotech] + public static HediffDef DeathrestExhaustion; + + [MayRequireBiotech] + public static HediffDef BandNode; + + [MayRequireBiotech] + public static HediffDef HemogenCraving; + + [MayRequireAnomaly] + public static HediffDef HoraxianInvisibility; + + [MayRequireAnomaly] + public static HediffDef RevenantHypnosis; + + [MayRequireAnomaly] + public static HediffDef AwokenHypnosis; + + [MayRequireAnomaly] + public static HediffDef DarkPsychicShock; + + [MayRequireAnomaly] + public static HediffDef Tentacle; + + [MayRequireAnomaly] + public static HediffDef FleshWhip; + + [MayRequireAnomaly] + public static HediffDef OrganDecayUndiagnosedDuplicaton; + + [MayRequireAnomaly] + public static HediffDef CrumblingMindUndiagnosedDuplication; + + [MayRequireAnomaly] + public static HediffDef OrganDecayCreepjoiner; + + [MayRequireAnomaly] + public static HediffDef CrumblingMind; + + [MayRequireAnomaly] + public static HediffDef CrumbledMind; + + [MayRequireAnomaly] + public static HediffDef BlissLobotomy; + + [MayRequireAnomaly] + public static HediffDef PleasurePulse; + + [MayRequireAnomaly] + public static HediffDef NeurosisPulse; + + [MayRequireAnomaly] + public static HediffDef BloodRage; + + [MayRequireAnomaly] + public static HediffDef FrenzyField; + + [MayRequireAnomaly] + public static HediffDef AgonyPulse; + + [MayRequireAnomaly] + public static HediffDef CubeInterest; + + [MayRequireAnomaly] + public static HediffDef CubeWithdrawal; + + [MayRequireAnomaly] + public static HediffDef CubeRage; + + [MayRequireAnomaly] + public static HediffDef CubeComa; + + [MayRequireAnomaly] + public static HediffDef BrainwipeComa; + + [MayRequireAnomaly] + public static HediffDef CorpseTorment; + + [MayRequireAnomaly] + public static HediffDef PsychicallyDead; + + [MayRequireAnomaly] + public static HediffDef Psychophage; + + [MayRequireAnomaly] + public static HediffDef SleepSuppression; + + [MayRequireAnomaly] + public static HediffDef RageSpeed; + + [MayRequireAnomaly] + public static HediffDef AwokenCorpse; + + [MayRequireAnomaly] + public static HediffDef RapidRegeneration; + + [MayRequireAnomaly] + public static HediffDef GhoulBarbs; + + [MayRequireAnomaly] + public static HediffDef GhoulPlating; + + [MayRequireAnomaly] + public static HediffDef AdrenalHeart; + + [MayRequireAnomaly] + public static HediffDef FleshmassStomach; + + [MayRequireAnomaly] + public static HediffDef FleshmassLung; + + [MayRequireAnomaly] + public static HediffDef Metalblood; + + [MayRequireOdyssey] + public static HediffDef SentienceCatalyst; + + static HediffDefOf() + { + DefOfHelper.EnsureInitializedInCtor(typeof(HediffDefOf)); + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/Human-ThingDef.txt b/MCP/vector_cache/Human-ThingDef.txt new file mode 100644 index 00000000..ac72ecd3 --- /dev/null +++ b/MCP/vector_cache/Human-ThingDef.txt @@ -0,0 +1,2691 @@ +根据向量相似度分析,与 'Human, ThingDef' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\ThingDef.txt` + +```csharp +public class ThingDef : BuildableDef +{ + public Type thingClass; + + public ThingCategory category; + + public TickerType tickerType; + + public int stackLimit = 1; + + public IntVec2 size = IntVec2.One; + + public bool destroyable = true; + + public bool rotatable = true; + + public bool smallVolume; + + public bool useHitPoints = true; + + public bool receivesSignals; + + public List comps = new List(); + + public List virtualDefs = new List(); + + public ThingDef virtualDefParent; + + [NoTranslate] + public string devNote; + + public List killedLeavingsRanges; + + public List killedLeavings; + + public List killedLeavingsPlayerHostile; + + public float killedLeavingsChance = 1f; + + public bool forceLeavingsAllowed; + + public List butcherProducts; + + public List smeltProducts; + + public bool smeltable; + + public bool burnableByRecipe; + + public bool randomizeRotationOnSpawn; + + public List damageMultipliers; + + public bool isTechHediff; + + public RecipeMakerProperties recipeMaker; + + public ThingDef minifiedDef; + + public bool isUnfinishedThing; + + public bool leaveResourcesWhenKilled; + + public ThingDef slagDef; + + public bool isFrameInt; + + public List multipleInteractionCellOffsets; + + public IntVec3 interactionCellOffset = IntVec3.Zero; + + public bool hasInteractionCell; + + public ThingDef interactionCellIcon; + + public bool interactionCellIconReverse; + + public ThingDef filthLeaving; + + public bool forceDebugSpawnable; + + public bool intricate; + + public bool scatterableOnMapGen = true; + + public float deepCommonality; + + public int deepCountPerCell = 300; + + public int deepCountPerPortion = -1; + + public IntRange deepLumpSizeRange = IntRange.Zero; + + public float generateCommonality = 1f; + + public float generateAllowChance = 1f; + + private bool canOverlapZones = true; + + public FloatRange startingHpRange = FloatRange.One; + + [NoTranslate] + public List thingSetMakerTags; + + public bool alwaysFlee; + + public List recipes; + + public bool messageOnDeteriorateInStorage = true; + + public bool deteriorateFromEnvironmentalEffects = true; + + public bool canDeteriorateUnspawned; + + public bool canLoadIntoCaravan = true; + + public bool isMechClusterThreat; + + public FloatRange displayNumbersBetweenSameDefDistRange = FloatRange.Zero; + + public int minRewardCount = 1; + + public bool preventSkyfallersLandingOn; + + public FactionDef requiresFactionToAcquire; + + public float relicChance; + + public OrderedTakeGroupDef orderedTakeGroup; + + public int allowedArchonexusCount; + + public int possessionCount; + + public bool notifyMapRemoved; + + public bool canScatterOver = true; + + public bool genericMarketSellable = true; + + public bool drawHighlight; + + public Color? highlightColor; + + public bool drawHighlightOnlyForHostile; + + public bool autoTargetNearbyIdenticalThings; + + public bool preventDroppingThingsOn; + + public bool hiddenWhileUndiscovered; + + public bool disableImpassableShotOverConfigError; + + public bool showInSearch = true; + + public bool bringAlongOnGravship = true; + + public ThingDef dropPodFaller; + + public bool preventSpawningInResourcePod; + + public bool pathfinderDangerous; + + public bool noRightClickDraftAttack; + + public int gravshipSpawnPriority = 1; + + public List replaceTags; + + public GraphicData graphicData; + + public DrawerType drawerType = DrawerType.RealtimeOnly; + + public bool drawOffscreen; + + public ColorGenerator colorGenerator; + + public float hideAtSnowOrSandDepth = 99999f; + + public bool drawDamagedOverlay = true; + + public bool castEdgeShadows; + + public float staticSunShadowHeight; + + public bool useSameGraphicForGhost; + + public bool useBlueprintGraphicAsGhost; + + public List randomStyle; + + public float randomStyleChance; + + public bool canEditAnyStyle; + + public bool dontPrint; + + public ThingDef defaultStuff; + + public int killedLeavingsExpandRect; + + public bool minifiedManualDraw; + + public float minifiedDrawScale = 1f; + + public Rot4 overrideMinifiedRot = Rot4.Invalid; + + public Vector3 minifiedDrawOffset = Vector3.zero; + + public float deselectedSelectionBracketFactor = 1f; + + public bool selectable; + + public bool containedPawnsSelectable; + + public bool containedItemsSelectable; + + public bool neverMultiSelect; + + public bool isAutoAttackableMapObject; + + public bool hasTooltip; + + public List inspectorTabs; + + [Unsaved(false)] + public List inspectorTabsResolved; + + public bool seeThroughFog; + + public bool drawGUIOverlay; + + public bool drawGUIOverlayQuality = true; + + public ResourceCountPriority resourceReadoutPriority; + + public bool resourceReadoutAlwaysShow; + + public bool drawPlaceWorkersWhileSelected; + + public bool drawPlaceWorkersWhileInstallBlueprintSelected; + + public ConceptDef storedConceptLearnOpportunity; + + public float uiIconScale = 1f; + + public bool hasCustomRectForSelector; + + public bool hideStats; + + public bool hideInspect; + + public bool onlyShowInspectString; + + public bool hideMainDesc; + + public bool alwaysHaulable; + + public bool designateHaulable; + + public List thingCategories; + + public bool mineable; + + public bool socialPropernessMatters; + + public bool stealable = true; + + public SoundDef soundSpawned; + + public SoundDef soundDrop; + + public SoundDef soundPickup; + + public SoundDef soundInteract; + + public SoundDef soundImpactDefault; + + public SoundDef soundPlayInstrument; + + public SoundDef soundOpen; + + public bool saveCompressible; + + public bool isSaveable = true; + + public bool holdsRoof; + + public float fillPercent; + + public bool coversFloor; + + public bool neverOverlapFloors; + + public SurfaceType surfaceType; + + public bool wipesPlants; + + public bool blockPlants; + + public bool blockLight; + + public bool blockWind; + + public bool blockWeather; + + public Tradeability tradeability = Tradeability.All; + + [NoTranslate] + public List tradeTags; + + public bool tradeNeverStack; + + public bool tradeNeverGenerateStacked; + + public bool healthAffectsPrice = true; + + public ColorGenerator colorGeneratorInTraderStock; + + private List verbs; + + public List tools; + + public float equippedAngleOffset; + + public float equippedDistanceOffset; + + public EquipmentType equipmentType; + + public TechLevel techLevel; + + public List weaponClasses; + + [NoTranslate] + public List weaponTags; + + [NoTranslate] + public List techHediffsTags; + + public bool violentTechHediff; + + public bool destroyOnDrop; + + public List equippedStatOffsets; + + public SoundDef meleeHitSound; + + public float recoilPower = 1f; + + public float recoilRelaxation = 10f; + + public bool rotateInShelves = true; + + public bool mergeVerbGizmos = true; + + public BuildableDef entityDefToBuild; + + public ThingDef projectileWhenLoaded; + + public RulePackDef ideoBuildingNamerBase; + + public EntityCodexEntryDef entityCodexEntry; + + public IngestibleProperties ingestible; + + public FilthProperties filth; + + public GasProperties gas; + + public BuildingProperties building; + + public RaceProperties race; + + public ApparelProperties apparel; + + public MoteProperties mote; + + public PlantProperties plant; + + public ProjectileProperties projectile; + + public StuffProperties stuffProps; + + public SkyfallerProperties skyfaller; + + public PawnFlyerProperties pawnFlyer; + + public RitualFocusProperties ritualFocus; + + public IngredientProperties ingredient; + + public MapPortalProperties portal; + + public bool canBeUsedUnderRoof = true; + + [Unsaved(false)] + private string descriptionDetailedCached; + + [Unsaved(false)] + public Graphic interactionCellGraphic; + + [Unsaved(false)] + private bool? isNaturalOrganCached; + + [Unsaved(false)] + private bool? hasSunShadowsCached; + + [Unsaved(false)] + private List cachedRelevantStyleCategories; + + public const int SmallUnitPerVolume = 10; + + public const float SmallVolumePerUnit = 0.1f; + + public const float ArchonexusMaxItemStackMass = 5f; + + public const int ArchonexusMaxItemStackCount = 25; + + public const float ArchonexusMaxItemStackValue = 2000f; + + public const int ArchonexusAutoCalculateValue = -1; + + private List allRecipesCached; + + private static List EmptyVerbPropertiesList = new List(); + + private Dictionary concreteExamplesInt; + + public bool EverHaulable + { + get + { + if (!alwaysHaulable) + { + return designateHaulable; + } + return true; + } + } + + public bool EverPollutable => !building.isNaturalRock; + + public float VolumePerUnit + { + get + { + if (smallVolume) + { + return 0.1f; + } + return 1f; + } + } + + public override IntVec2 Size => size; + + public bool DiscardOnDestroyed => race == null; + + public int BaseMaxHitPoints => Mathf.RoundToInt(this.GetStatValueAbstract(StatDefOf.MaxHitPoints)); + + public float BaseFlammability => this.GetStatValueAbstract(StatDefOf.Flammability); + + public float BaseMarketValue + { + get + { + return this.GetStatValueAbstract(StatDefOf.MarketValue); + } + set + { + this.SetStatBaseValue(StatDefOf.MarketValue, value); + } + } + + public float BaseMass => this.GetStatValueAbstract(StatDefOf.Mass); + + public int ArchonexusMaxAllowedCount + { + get + { + if (allowedArchonexusCount == -1) + { + return Mathf.Min(stackLimit, 25, (BaseMass > 0f) ? ((int)(5f / BaseMass)) : 0, (BaseMarketValue > 0f) ? ((int)(2000f / BaseMarketValue)) : 0); + } + return allowedArchonexusCount; + } + } + + public bool PlayerAcquirable + { + get + { + if (destroyOnDrop) + { + return false; + } + if (this == ThingDefOf.ReinforcedBarrel && Find.Storyteller != null && Find.Storyteller.difficulty.classicMortars) + { + return false; + } + if (requiresFactionToAcquire != null && Find.World != null && Find.World.factionManager != null) + { + return Find.FactionManager.FirstFactionOfDef(requiresFactionToAcquire) != null; + } + return true; + } + } + + public bool EverTransmitsPower + { + get + { + for (int i = 0; i < comps.Count; i++) + { + if (comps[i] is CompProperties_Power { transmitsPower: not false }) + { + return true; + } + } + return false; + } + } + + public bool Minifiable => minifiedDef != null; + + public bool HasThingIDNumber => category != ThingCategory.Mote; + + public List AllRecipes + { + get + { + if (allRecipesCached == null) + { + allRecipesCached = new List(); + if (recipes != null) + { + for (int i = 0; i < recipes.Count; i++) + { + allRecipesCached.Add(recipes[i]); + } + } + List allDefsListForReading = DefDatabase.AllDefsListForReading; + for (int j = 0; j < allDefsListForReading.Count; j++) + { + if (allDefsListForReading[j].recipeUsers != null && allDefsListForReading[j].recipeUsers.Contains(this)) + { + allRecipesCached.Add(allDefsListForReading[j]); + } + } + } + return allRecipesCached; + } + } + + public bool ConnectToPower + { + get + { + if (EverTransmitsPower) + { + return false; + } + for (int i = 0; i < comps.Count; i++) + { + if (comps[i].compClass == typeof(CompPowerBattery)) + { + return true; + } + if (comps[i].compClass == typeof(CompPowerTrader)) + { + return true; + } + } + return false; + } + } + + public bool CoexistsWithFloors + { + get + { + if (!neverOverlapFloors) + { + return !coversFloor; + } + return false; + } + } + + public FillCategory Fillage + { + get + { + if (fillPercent < 0.01f) + { + return FillCategory.None; + } + if (fillPercent > 0.99f) + { + return FillCategory.Full; + } + return FillCategory.Partial; + } + } + + public bool MakeFog => Fillage == FillCategory.Full; + + public bool CanOverlapZones + { + get + { + if (building != null && building.SupportsPlants) + { + return false; + } + if (passability == Traversability.Impassable && category != ThingCategory.Plant && !HasComp(typeof(CompTransporter))) + { + return false; + } + if ((int)surfaceType >= 1) + { + return false; + } + if (typeof(ISlotGroupParent).IsAssignableFrom(thingClass)) + { + return false; + } + if (!canOverlapZones) + { + return false; + } + if ((IsBlueprint || IsFrame) && entityDefToBuild is ThingDef thingDef) + { + return thingDef.CanOverlapZones; + } + return true; + } + } + + public bool CountAsResource => resourceReadoutPriority != ResourceCountPriority.Uncounted; + + public List Verbs + { + get + { + if (verbs != null) + { + return verbs; + } + return EmptyVerbPropertiesList; + } + } + + public bool CanHaveFaction + { + get + { + if (IsBlueprint || IsFrame) + { + return true; + } + return category switch + { + ThingCategory.Pawn => true, + ThingCategory.Building => true, + _ => false, + }; + } + } + + public bool Claimable + { + get + { + if (building != null && building.claimable) + { + return !building.isNaturalRock; + } + return false; + } + } + + public ThingCategoryDef FirstThingCategory + { + get + { + if (thingCategories.NullOrEmpty()) + { + return null; + } + return thingCategories[0]; + } + } + + public float MedicineTendXpGainFactor => Mathf.Clamp(this.GetStatValueAbstract(StatDefOf.MedicalPotency) * 0.7f, 0.5f, 1f); + + public bool CanEverDeteriorate + { + get + { + if (!useHitPoints) + { + return false; + } + if (category != ThingCategory.Item) + { + if (plant != null) + { + return plant.canDeteriorate; + } + return false; + } + return true; + } + } + + public bool CanInteractThroughCorners + { + get + { + if (category != ThingCategory.Building) + { + return false; + } + if (!holdsRoof) + { + return false; + } + if (building != null && building.isNaturalRock && !IsSmoothed) + { + return false; + } + return true; + } + } + + public bool AffectsRegions + { + get + { + if (passability != Traversability.Impassable && !IsDoor) + { + return IsFence; + } + return true; + } + } + + public bool AffectsReachability + { + get + { + if (AffectsRegions) + { + return true; + } + if (passability == Traversability.Impassable || IsDoor) + { + return true; + } + if (TouchPathEndModeUtility.MakesOccupiedCellsAlwaysReachableDiagonally(this)) + { + return true; + } + return false; + } + } + + public string DescriptionDetailed + { + get + { + if (descriptionDetailedCached == null) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(description); + if (IsApparel) + { + stringBuilder.AppendLine(); + stringBuilder.AppendLine(); + stringBuilder.AppendLine(string.Format("{0}: {1}", "Layer".Translate(), apparel.GetLayersString())); + stringBuilder.Append(string.Format("{0}: {1}", "Covers".Translate(), apparel.GetCoveredOuterPartsString(BodyDefOf.Human))); + if (equippedStatOffsets != null && equippedStatOffsets.Count > 0) + { + stringBuilder.AppendLine(); + stringBuilder.AppendLine(); + for (int i = 0; i < equippedStatOffsets.Count; i++) + { + if (i > 0) + { + stringBuilder.AppendLine(); + } + StatModifier statModifier = equippedStatOffsets[i]; + stringBuilder.Append($"{statModifier.stat.LabelCap}: {statModifier.ValueToStringAsOffset}"); + } + } + } + descriptionDetailedCached = stringBuilder.ToString(); + } + return descriptionDetailedCached; + } + } + + public bool CanBenefitFromCover + { + get + { + if (category == ThingCategory.Pawn) + { + return true; + } + if (building != null && building.IsTurret) + { + return true; + } + return false; + } + } + + public bool PotentiallySmeltable + { + get + { + if (!smeltable) + { + return false; + } + if (base.MadeFromStuff) + { + foreach (ThingDef item in GenStuff.AllowedStuffsFor(this)) + { + if (item.smeltable) + { + return true; + } + } + return false; + } + return true; + } + } + + public bool HasSingleOrMultipleInteractionCells + { + get + { + if (!hasInteractionCell) + { + return !multipleInteractionCellOffsets.NullOrEmpty(); + } + return true; + } + } + + public bool IsApparel => apparel != null; + + public bool IsBed => typeof(Building_Bed).IsAssignableFrom(thingClass); + + public bool IsWall + { + get + { + if (building != null) + { + return building.isWall; + } + return false; + } + } + + public bool IsCorpse => typeof(Corpse).IsAssignableFrom(thingClass); + + public bool IsFrame => isFrameInt; + + public bool IsBlueprint + { + get + { + if (entityDefToBuild != null) + { + return category == ThingCategory.Ethereal; + } + return false; + } + } + + public bool IsStuff => stuffProps != null; + + public bool IsMedicine => statBases.StatListContains(StatDefOf.MedicalPotency); + + public bool IsDoor => typeof(Building_Door).IsAssignableFrom(thingClass); + + public bool IsFence + { + get + { + if (building != null) + { + return building.isFence; + } + return false; + } + } + + public bool IsFilth => filth != null; + + public bool IsIngestible => ingestible != null; + + public bool IsNutritionGivingIngestible + { + get + { + if (IsIngestible) + { + return ingestible.CachedNutrition > 0f; + } + return false; + } + } + + public bool IsNutritionGivingIngestibleForHumanlikeBabies + { + get + { + if (IsNutritionGivingIngestible && ingestible.HumanEdible) + { + return ingestible.babiesCanIngest; + } + return false; + } + } + + public bool IsWeapon + { + get + { + if (category == ThingCategory.Item && (!verbs.NullOrEmpty() || !tools.NullOrEmpty())) + { + return !IsApparel; + } + return false; + } + } + + public bool IsCommsConsole => typeof(Building_CommsConsole).IsAssignableFrom(thingClass); + + public bool IsOrbitalTradeBeacon => typeof(Building_OrbitalTradeBeacon).IsAssignableFrom(thingClass); + + public bool IsFoodDispenser => typeof(Building_NutrientPasteDispenser).IsAssignableFrom(thingClass); + + public bool IsDrug + { + get + { + if (ingestible != null) + { + return ingestible.drugCategory != DrugCategory.None; + } + return false; + } + } + + public bool IsPleasureDrug + { + get + { + if (IsDrug) + { + return ingestible.joy > 0f; + } + return false; + } + } + + public bool IsNonMedicalDrug + { + get + { + if (IsDrug) + { + return ingestible.drugCategory != DrugCategory.Medical; + } + return false; + } + } + + public bool IsTable + { + get + { + if (surfaceType == SurfaceType.Eat) + { + return HasComp(typeof(CompGatherSpot)); + } + return false; + } + } + + public bool IsWorkTable => typeof(Building_WorkTable).IsAssignableFrom(thingClass); + + public bool IsShell => projectileWhenLoaded != null; + + public bool IsArt => IsWithinCategory(ThingCategoryDefOf.BuildingsArt); + + public bool IsSmoothable => building?.smoothedThing != null; + + public bool IsSmoothed => building?.unsmoothedThing != null; + + public bool IsMetal + { + get + { + if (stuffProps != null) + { + return stuffProps.categories.Contains(StuffCategoryDefOf.Metallic); + } + return false; + } + } + + public bool IsCryptosleepCasket => typeof(Building_CryptosleepCasket).IsAssignableFrom(thingClass); + + public bool IsGibbetCage => typeof(Building_GibbetCage).IsAssignableFrom(thingClass); + + public bool IsMechGestator => typeof(Building_MechGestator).IsAssignableFrom(thingClass); + + public bool IsMechRecharger => typeof(Building_MechCharger).IsAssignableFrom(thingClass); + + public bool IsAddictiveDrug + { + get + { + CompProperties_Drug compProperties = GetCompProperties(); + if (compProperties != null) + { + return compProperties.addictiveness > 0f; + } + return false; + } + } + + public bool IsMeat + { + get + { + if (category == ThingCategory.Item && thingCategories != null) + { + return thingCategories.Contains(ThingCategoryDefOf.MeatRaw); + } + return false; + } + } + + public bool IsEgg + { + get + { + if (category == ThingCategory.Item && thingCategories != null) + { + if (!thingCategories.Contains(ThingCategoryDefOf.EggsFertilized)) + { + return thingCategories.Contains(ThingCategoryDefOf.EggsUnfertilized); + } + return true; + } + return false; + } + } + + public bool IsLeather + { + get + { + if (category == ThingCategory.Item && thingCategories != null) + { + return thingCategories.Contains(ThingCategoryDefOf.Leathers); + } + return false; + } + } + + public bool IsWool + { + get + { + if (category == ThingCategory.Item && thingCategories != null) + { + return thingCategories.Contains(ThingCategoryDefOf.Wools); + } + return false; + } + } + + public bool IsRangedWeapon + { + get + { + if (!IsWeapon) + { + return false; + } + if (!verbs.NullOrEmpty()) + { + for (int i = 0; i < verbs.Count; i++) + { + if (!verbs[i].IsMeleeAttack) + { + return true; + } + } + } + return false; + } + } + + public bool IsMeleeWeapon + { + get + { + if (IsWeapon) + { + return !IsRangedWeapon; + } + return false; + } + } + + public bool IsWeaponUsingProjectiles + { + get + { + if (!IsWeapon) + { + return false; + } + if (!verbs.NullOrEmpty()) + { + for (int i = 0; i < verbs.Count; i++) + { + if (verbs[i].LaunchesProjectile) + { + return true; + } + } + } + return false; + } + } + + public bool IsShieldThatBlocksRanged + { + get + { + if (HasComp(typeof(CompShield))) + { + return GetCompProperties().blocksRangedWeapons; + } + return false; + } + } + + public bool IsBuildingArtificial + { + get + { + if (category == ThingCategory.Building || IsFrame) + { + if (building != null) + { + if (!building.isNaturalRock) + { + return !building.isResourceRock; + } + return false; + } + return true; + } + return false; + } + } + + public bool IsNonResourceNaturalRock + { + get + { + if (category == ThingCategory.Building && building.isNaturalRock && !building.isResourceRock && !building.mineablePreventNaturalRockOnSurface) + { + return !IsSmoothed; + } + return false; + } + } + + public bool HasSunShadows + { + get + { + if (!hasSunShadowsCached.HasValue) + { + hasSunShadowsCached = typeof(Pawn).IsAssignableFrom(thingClass); + } + return hasSunShadowsCached.Value; + } + } + + public bool IsNaturalOrgan + { + get + { + if (!isNaturalOrganCached.HasValue) + { + if (category != ThingCategory.Item) + { + isNaturalOrganCached = false; + } + else + { + List allDefsListForReading = DefDatabase.AllDefsListForReading; + isNaturalOrganCached = false; + for (int i = 0; i < allDefsListForReading.Count; i++) + { + if (allDefsListForReading[i].spawnThingOnRemoved == this) + { + isNaturalOrganCached = true; + break; + } + } + } + } + return isNaturalOrganCached.Value; + } + } + + public bool IsFungus + { + get + { + if (ingestible != null) + { + return ingestible.foodType.HasFlag(FoodTypeFlags.Fungus); + } + return false; + } + } + + public bool IsAnimalProduct + { + get + { + if (ingestible != null) + { + return ingestible.foodType.HasFlag(FoodTypeFlags.AnimalProduct); + } + return false; + } + } + + public bool IsProcessedFood + { + get + { + if (ingestible != null) + { + return ingestible.foodType.HasFlag(FoodTypeFlags.Processed); + } + return false; + } + } + + public bool CanAffectLinker + { + get + { + if (graphicData == null || !graphicData.Linked) + { + return IsDoor; + } + return true; + } + } + + public bool IsNonDeconstructibleAttackableBuilding + { + get + { + if (IsBuildingArtificial && !building.IsDeconstructible && destroyable && !mineable && building.isTargetable) + { + return building.draftAttackNonDeconstructable; + } + return false; + } + } + + public bool IsPlant => typeof(Plant).IsAssignableFrom(thingClass); + + public bool IsDeadPlant => typeof(DeadPlant).IsAssignableFrom(thingClass); + + public bool IsStudiable => HasAssignableCompFrom(typeof(CompStudiable)); + + public List RelevantStyleCategories + { + get + { + if (cachedRelevantStyleCategories == null) + { + cachedRelevantStyleCategories = new List(); + foreach (StyleCategoryDef allDef in DefDatabase.AllDefs) + { + if (allDef.thingDefStyles.NullOrEmpty()) + { + continue; + } + foreach (ThingDefStyle thingDefStyle in allDef.thingDefStyles) + { + if (thingDefStyle.ThingDef == this) + { + cachedRelevantStyleCategories.Add(allDef); + break; + } + } + } + } + return cachedRelevantStyleCategories; + } + } + + public string LabelAsStuff + { + get + { + if (!stuffProps.stuffAdjective.NullOrEmpty()) + { + return stuffProps.stuffAdjective; + } + return label; + } + } + + public bool BlocksPlanting(bool canWipePlants = false) + { + if (building != null && building.SupportsPlants) + { + return false; + } + if (building != null && building.isAttachment) + { + return false; + } + if (blockPlants) + { + return true; + } + if (!canWipePlants && category == ThingCategory.Plant) + { + return true; + } + if ((int)Fillage > 0) + { + return true; + } + if (this.IsEdifice()) + { + return true; + } + return false; + } + + public virtual bool CanSpawnAt(IntVec3 pos, Rot4 rot, Map map) + { + return true; + } + + public bool EverStorable(bool willMinifyIfPossible) + { + if (typeof(MinifiedThing).IsAssignableFrom(thingClass)) + { + return true; + } + if (!thingCategories.NullOrEmpty()) + { + if (category == ThingCategory.Item) + { + return true; + } + if (willMinifyIfPossible && Minifiable) + { + return true; + } + } + return false; + } + + public Thing GetConcreteExample(ThingDef stuff = null) + { + if (concreteExamplesInt == null) + { + concreteExamplesInt = new Dictionary(); + } + if (stuff == null) + { + stuff = ThingDefOf.Steel; + } + if (!concreteExamplesInt.ContainsKey(stuff)) + { + if (race == null) + { + concreteExamplesInt[stuff] = ThingMaker.MakeThing(this, base.MadeFromStuff ? stuff : null); + } + else + { + concreteExamplesInt[stuff] = PawnGenerator.GeneratePawn(DefDatabase.AllDefsListForReading.FirstOrDefault((PawnKindDef pkd) => pkd.race == this)); + } + } + return concreteExamplesInt[stuff]; + } + + public CompProperties CompDefFor() where T : ThingComp + { + for (int i = 0; i < comps.Count; i++) + { + if (comps[i].compClass == typeof(T)) + { + return comps[i]; + } + } + return null; + } + + public CompProperties CompDefForAssignableFrom() where T : ThingComp + { + for (int i = 0; i < comps.Count; i++) + { + if (typeof(T).IsAssignableFrom(comps[i].compClass)) + { + return comps[i]; + } + } + return null; + } + + public bool HasComp(Type compType) + { + for (int i = 0; i < comps.Count; i++) + { + if (comps[i].compClass == compType) + { + return true; + } + } + return false; + } + + public bool HasComp() where T : ThingComp + { + for (int i = 0; i < comps.Count; i++) + { + if (comps[i].compClass == typeof(T) || typeof(T).IsAssignableFrom(comps[i].compClass)) + { + return true; + } + } + return false; + } + + public bool HasAssignableCompFrom(Type compType) + { + for (int i = 0; i < comps.Count; i++) + { + if (compType.IsAssignableFrom(comps[i].compClass)) + { + return true; + } + } + return false; + } + + public T GetCompProperties() where T : CompProperties + { + for (int i = 0; i < comps.Count; i++) + { + if (comps[i] is T result) + { + return result; + } + } + return null; + } + + public override void PostLoad() + { + if (graphicData != null) + { + LongEventHandler.ExecuteWhenFinished(delegate + { + GraphicData graphicData = this.graphicData; + if (graphicData.shaderType == null) + { + graphicData.shaderType = ShaderTypeDefOf.Cutout; + } + ContentFinderRequester.requester = this; + try + { + graphic = this.graphicData.Graphic; + if (drawerType != DrawerType.RealtimeOnly) + { + TextureAtlasGroup textureAtlasGroup = category.ToAtlasGroup(); + graphic.TryInsertIntoAtlas(textureAtlasGroup); + if (textureAtlasGroup == TextureAtlasGroup.Building && Minifiable) + { + graphic.TryInsertIntoAtlas(TextureAtlasGroup.Item); + } + } + } + finally + { + ContentFinderRequester.requester = null; + } + }); + } + if (tools != null) + { + for (int i = 0; i < tools.Count; i++) + { + tools[i].id = i.ToString(); + } + } + if (verbs != null && verbs.Count == 1 && verbs[0].label.NullOrEmpty()) + { + verbs[0].label = label; + } + base.PostLoad(); + if (category == ThingCategory.Building && building == null) + { + building = new BuildingProperties(); + } + building?.PostLoadSpecial(this); + apparel?.PostLoadSpecial(this); + plant?.PostLoadSpecial(this); + if (comps == null) + { + return; + } + foreach (CompProperties comp in comps) + { + comp.PostLoadSpecial(this); + } + } + + protected override void ResolveIcon() + { + base.ResolveIcon(); + if (category == ThingCategory.Pawn) + { + if (!uiIconPath.NullOrEmpty()) + { + uiIcon = ContentFinder.Get(uiIconPath); + } + else + { + if (race.Humanlike) + { + return; + } + PawnKindDef anyPawnKind = race.AnyPawnKind; + if (anyPawnKind != null) + { + Material material = ((ModsConfig.BiotechActive && anyPawnKind.RaceProps.IsMechanoid) ? anyPawnKind.lifeStages.First() : anyPawnKind.lifeStages.Last()).bodyGraphicData.Graphic.MatAt(Rot4.East); + uiIcon = (Texture2D)material.mainTexture; + uiIconColor = material.color; + if (ShaderDatabase.TryGetUIShader(material.shader, out var uiShader) && MaterialPool.TryGetRequestForMat(material, out var request)) + { + request.shader = uiShader; + uiIconMaterial = MaterialPool.MatFrom(request); + } + } + } + } + else + { + ThingDef thingDef = GenStuff.DefaultStuffFor(this); + if (colorGenerator != null && (thingDef == null || thingDef.stuffProps.allowColorGenerators)) + { + uiIconColor = colorGenerator.ExemplaryColor; + } + else if (thingDef != null) + { + uiIconColor = GetColorForStuff(thingDef); + } + else if (graphicData != null) + { + uiIconColor = graphicData.color; + } + if (rotatable && graphic != null && graphic != BaseContent.BadGraphic && graphic.ShouldDrawRotated && defaultPlacingRot == Rot4.South) + { + uiIconAngle = 180f + graphic.DrawRotatedExtraAngleOffset; + } + } + } + + public override void ResolveReferences() + { + base.ResolveReferences(); + if (ingestible != null) + { + ingestible.parent = this; + } + if (stuffProps != null) + { + stuffProps.parent = this; + } + building?.ResolveReferencesSpecial(); + graphicData?.ResolveReferencesSpecial(); + race?.ResolveReferencesSpecial(); + stuffProps?.ResolveReferencesSpecial(); + apparel?.ResolveReferencesSpecial(); + if (soundImpactDefault == null) + { + soundImpactDefault = SoundDefOf.BulletImpact_Ground; + } + if (soundDrop == null) + { + soundDrop = SoundDefOf.Standard_Drop; + } + if (soundPickup == null) + { + soundPickup = SoundDefOf.Standard_Pickup; + } + if (soundInteract == null) + { + soundInteract = SoundDefOf.Standard_Pickup; + } + if (inspectorTabs != null && inspectorTabs.Any()) + { + inspectorTabsResolved = new List(); + for (int i = 0; i < inspectorTabs.Count; i++) + { + try + { + inspectorTabsResolved.Add(InspectTabManager.GetSharedInstance(inspectorTabs[i])); + } + catch (Exception ex) + { + Log.Error("Could not instantiate inspector tab of type " + inspectorTabs[i]?.ToString() + ": " + ex); + } + } + } + if (comps != null) + { + for (int j = 0; j < comps.Count; j++) + { + comps[j].ResolveReferences(this); + } + } + } + + public override IEnumerable ConfigErrors() + { + foreach (string item in base.ConfigErrors()) + { + yield return item; + } + if (category != ThingCategory.Ethereal && label.NullOrEmpty()) + { + yield return "no label"; + } + if (category == ThingCategory.Building && !IsFrame && building.IsDeconstructible && thingClass != null && typeof(Building).IsSubclassOf(thingClass)) + { + yield return "has building category and is marked as deconstructible, but thing class is not a subclass of building (" + thingClass.Name + ")"; + } + if (graphicData != null) + { + foreach (string item2 in graphicData.ConfigErrors(this)) + { + yield return item2; + } + } + if (projectile != null) + { + foreach (string item3 in projectile.ConfigErrors(this)) + { + yield return item3; + } + } + if (statBases != null) + { + foreach (StatModifier statBase in statBases) + { + if (statBases.Count((StatModifier st) => st.stat == statBase.stat) > 1) + { + yield return "defines the stat base " + statBase.stat?.ToString() + " more than once."; + } + } + } + if (!BeautyUtility.BeautyRelevant(category) && this.StatBaseDefined(StatDefOf.Beauty)) + { + yield return "Beauty stat base is defined, but Things of category " + category.ToString() + " cannot have beauty."; + } + if (!BeautyUtility.BeautyRelevant(category) && this.StatBaseDefined(StatDefOf.BeautyOutdoors)) + { + yield return "BeautyOutdoors stat base is defined, but Things of category " + category.ToString() + " cannot have beauty."; + } + if (char.IsNumber(defName[defName.Length - 1])) + { + yield return "ends with a numerical digit, which is not allowed on ThingDefs."; + } + if (thingClass == null) + { + yield return "has null thingClass."; + } + if (comps.Count > 0 && !typeof(ThingWithComps).IsAssignableFrom(thingClass)) + { + yield return "has components but it's thingClass is not a ThingWithComps"; + } + if (ConnectToPower && drawerType == DrawerType.RealtimeOnly && IsFrame) + { + yield return "connects to power but does not add to map mesh. Will not create wire meshes."; + } + if (costList != null) + { + foreach (ThingDefCountClass cost in costList) + { + if (cost.count == 0) + { + yield return "cost in " + cost.thingDef?.ToString() + " is zero."; + } + } + } + ThingCategoryDef thingCategoryDef = thingCategories?.FirstOrDefault((ThingCategoryDef cat) => thingCategories.Count((ThingCategoryDef c) => c == cat) > 1); + if (thingCategoryDef != null) + { + yield return "has duplicate thingCategory " + thingCategoryDef?.ToString() + "."; + } + if (Fillage == FillCategory.Full && category != ThingCategory.Building) + { + yield return "gives full cover but is not a building."; + } + if (equipmentType != 0) + { + if (techLevel == TechLevel.Undefined && !destroyOnDrop) + { + yield return "is equipment but has no tech level."; + } + if (!comps.Any((CompProperties c) => typeof(CompEquippable).IsAssignableFrom(c.compClass))) + { + yield return "is equipment but has no CompEquippable"; + } + } + if (thingClass == typeof(Bullet) && projectile.damageDef == null) + { + yield return " is a bullet but has no damageDef."; + } + if (destroyOnDrop && tradeability != 0) + { + yield return "destroyOnDrop but tradeability is " + tradeability; + } + if (stackLimit > 1 && !drawGUIOverlay) + { + yield return "has stackLimit > 1 but also has drawGUIOverlay = false."; + } + if (damageMultipliers != null) + { + foreach (DamageMultiplier mult in damageMultipliers) + { + if (damageMultipliers.Count((DamageMultiplier m) => m.damageDef == mult.damageDef) > 1) + { + yield return "has multiple damage multipliers for damageDef " + mult.damageDef; + break; + } + } + } + if (Fillage == FillCategory.Full && !this.IsEdifice()) + { + yield return "fillPercent is 1.00 but is not edifice"; + } + if (base.MadeFromStuff && constructEffect != null) + { + yield return "madeFromStuff but has a defined constructEffect (which will always be overridden by stuff's construct animation)."; + } + if (base.MadeFromStuff && stuffCategories.NullOrEmpty()) + { + yield return "madeFromStuff but has no stuffCategories."; + } + if (costList.NullOrEmpty() && costStuffCount <= 0 && recipeMaker != null) + { + yield return "has a recipeMaker but no costList or costStuffCount."; + } + if (costStuffCount > 0 && stuffCategories.NullOrEmpty()) + { + yield return "has costStuffCount but no stuffCategories."; + } + if (this.GetStatValueAbstract(StatDefOf.DeteriorationRate) > 1E-05f && !CanEverDeteriorate && !destroyOnDrop) + { + yield return "has >0 DeteriorationRate but can't deteriorate."; + } + if (smeltProducts != null && !smeltable) + { + yield return "has smeltProducts but has smeltable=false"; + } + if (smeltable && smeltProducts.NullOrEmpty() && base.CostList.NullOrEmpty() && !IsStuff && !base.MadeFromStuff && !destroyOnDrop) + { + yield return "is smeltable but does not give anything for smelting."; + } + if (equipmentType != 0 && verbs.NullOrEmpty() && tools.NullOrEmpty()) + { + yield return "is equipment but has no verbs or tools"; + } + if (Minifiable && thingCategories.NullOrEmpty()) + { + yield return "is minifiable but not in any thing category"; + } + if (category == ThingCategory.Building && !Minifiable && !thingCategories.NullOrEmpty()) + { + yield return "is not minifiable yet has thing categories (could be confusing in thing filters because it can't be moved/stored anyway)"; + } + if (!destroyOnDrop && !typeof(MinifiedThing).IsAssignableFrom(thingClass) && (EverHaulable || Minifiable) && (statBases.NullOrEmpty() || !statBases.Any((StatModifier s) => s.stat == StatDefOf.Mass))) + { + yield return "is haulable, but does not have an authored mass value"; + } + if (ingestible == null && this.GetStatValueAbstract(StatDefOf.Nutrition) != 0f) + { + yield return "has nutrition but ingestible properties are null"; + } + if (BaseFlammability != 0f && !useHitPoints && category != ThingCategory.Pawn && !destroyOnDrop) + { + yield return "flammable but has no hitpoints (will burn indefinitely)"; + } + if (graphicData?.shadowData != null && staticSunShadowHeight > 0f) + { + yield return "graphicData defines a shadowInfo but staticSunShadowHeight > 0"; + } + if (saveCompressible && Claimable) + { + yield return "claimable item is compressible; faction will be unset after load"; + } + if (deepCommonality > 0f != deepLumpSizeRange.TrueMax > 0) + { + yield return "if deepCommonality or deepLumpSizeRange is set, the other also must be set"; + } + if (deepCommonality > 0f && deepCountPerPortion <= 0) + { + yield return "deepCommonality > 0 but deepCountPerPortion is not set"; + } + if (verbs != null) + { + for (int i = 0; i < verbs.Count; i++) + { + foreach (string item4 in verbs[i].ConfigErrors(this)) + { + yield return $"verb {i}: {item4}"; + } + } + } + if (building != null) + { + foreach (string item5 in building.ConfigErrors(this)) + { + yield return item5; + } + if ((building.isAirtight || building.isStuffableAirtight) && Fillage != FillCategory.Full) + { + yield return "is airtight but Fillage is not Full"; + } + } + if (apparel != null) + { + foreach (string item6 in apparel.ConfigErrors(this)) + { + yield return item6; + } + } + if (comps != null) + { + for (int i = 0; i < comps.Count; i++) + { + foreach (string item7 in comps[i].ConfigErrors(this)) + { + yield return item7; + } + } + } + if (race != null) + { + foreach (string item8 in race.ConfigErrors(this)) + { + yield return item8; + } + if (race.body != null && race != null && tools != null) + { + int i; + for (i = 0; i < tools.Count; i++) + { + if (tools[i].linkedBodyPartsGroup != null && !race.body.AllParts.Any((BodyPartRecord part) => part.groups.Contains(tools[i].linkedBodyPartsGroup))) + { + yield return "has tool with linkedBodyPartsGroup " + tools[i].linkedBodyPartsGroup?.ToString() + " but body " + race.body?.ToString() + " has no parts with that group."; + } + } + } + if (race.Animal && this.GetStatValueAbstract(StatDefOf.Wildness) < 0f) + { + yield return "is animal but wildness is not defined"; + } + } + if (ingestible != null) + { + foreach (string item9 in ingestible.ConfigErrors()) + { + yield return item9; + } + } + if (plant != null) + { + foreach (string item10 in plant.ConfigErrors()) + { + yield return item10; + } + } + if (tools != null) + { + Tool tool = tools.SelectMany((Tool lhs) => tools.Where((Tool rhs) => lhs != rhs && lhs.id == rhs.id)).FirstOrDefault(); + if (tool != null) + { + yield return "duplicate thingdef tool id " + tool.id; + } + foreach (Tool tool2 in tools) + { + foreach (string item11 in tool2.ConfigErrors()) + { + yield return item11; + } + } + } + if (!randomStyle.NullOrEmpty()) + { + foreach (ThingStyleChance item12 in randomStyle) + { + if (item12.Chance <= 0f) + { + yield return "style chance <= 0."; + } + } + if (!comps.Any((CompProperties c) => c.compClass == typeof(CompStyleable))) + { + yield return "random style assigned, but missing CompStyleable!"; + } + } + if (relicChance > 0f && category != ThingCategory.Item) + { + yield return "relic chance > 0 but category != item"; + } + if (hasInteractionCell && !multipleInteractionCellOffsets.NullOrEmpty()) + { + yield return "both single and multiple interaction cells are defined, it should be one or the other"; + } + if (Fillage != FillCategory.Full && passability == Traversability.Impassable && !IsDoor && base.BuildableByPlayer && !disableImpassableShotOverConfigError) + { + yield return "impassable, player-buildable building that can be shot/seen over."; + } + } + + public static ThingDef Named(string defName) + { + return DefDatabase.GetNamed(defName); + } + + public bool IsWithinCategory(ThingCategoryDef category) + { + if (thingCategories == null) + { + return false; + } + for (int i = 0; i < thingCategories.Count; i++) + { + for (ThingCategoryDef thingCategoryDef = thingCategories[i]; thingCategoryDef != null; thingCategoryDef = thingCategoryDef.parent) + { + if (thingCategoryDef == category) + { + return true; + } + } + } + return false; + } + + public void Notify_UnlockedByResearch() + { + if (comps != null) + { + for (int i = 0; i < comps.Count; i++) + { + comps[i].Notify_PostUnlockedByResearch(this); + } + } + } + + public override IEnumerable SpecialDisplayStats(StatRequest req) + { + foreach (StatDrawEntry item in base.SpecialDisplayStats(req)) + { + yield return item; + } + if (apparel != null) + { + string coveredOuterPartsString = apparel.GetCoveredOuterPartsString(BodyDefOf.Human); + yield return new StatDrawEntry(StatCategoryDefOf.Apparel, "Covers".Translate(), coveredOuterPartsString, "Stat_Thing_Apparel_Covers_Desc".Translate(), 2750); + yield return new StatDrawEntry(StatCategoryDefOf.Apparel, "Layer".Translate(), apparel.GetLayersString(), "Stat_Thing_Apparel_Layer_Desc".Translate(), 2751); + yield return new StatDrawEntry(StatCategoryDefOf.Apparel, "Stat_Thing_Apparel_CountsAsClothingNudity_Name".Translate(), apparel.countsAsClothingForNudity ? "Yes".Translate() : "No".Translate(), "Stat_Thing_Apparel_CountsAsClothingNudity_Desc".Translate(), 2753); + if (ModsConfig.BiotechActive) + { + yield return new StatDrawEntry(StatCategoryDefOf.Apparel, "Stat_Thing_Apparel_ValidLifestage".Translate(), apparel.developmentalStageFilter.ToCommaList().CapitalizeFirst(), "Stat_Thing_Apparel_ValidLifestage_Desc".Translate(), 2748); + } + if (apparel.gender != 0) + { + yield return new StatDrawEntry(StatCategoryDefOf.Apparel, "Stat_Thing_Apparel_Gender".Translate(), apparel.gender.GetLabel().CapitalizeFirst(), "Stat_Thing_Apparel_Gender_Desc".Translate(), 2749); + } + } + if (IsMedicine && MedicineTendXpGainFactor != 1f) + { + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "MedicineXpGainFactor".Translate(), MedicineTendXpGainFactor.ToStringPercent(), "Stat_Thing_Drug_MedicineXpGainFactor_Desc".Translate(), 1000); + } + if (fillPercent > 0f && (category == ThingCategory.Item || category == ThingCategory.Building || category == ThingCategory.Plant)) + { + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "CoverEffectiveness".Translate(), this.BaseBlockChance().ToStringPercent(), "CoverEffectivenessExplanation".Translate(), 2000); + } + if (constructionSkillPrerequisite > 0) + { + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "SkillRequiredToBuild".Translate(SkillDefOf.Construction.LabelCap), constructionSkillPrerequisite.ToString(), "SkillRequiredToBuildExplanation".Translate(SkillDefOf.Construction.LabelCap), 1100); + } + if (artisticSkillPrerequisite > 0) + { + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "SkillRequiredToBuild".Translate(SkillDefOf.Artistic.LabelCap), artisticSkillPrerequisite.ToString(), "SkillRequiredToBuildExplanation".Translate(SkillDefOf.Artistic.LabelCap), 1100); + } + IEnumerable recipes = DefDatabase.AllDefsListForReading.Where((RecipeDef r) => r.products.Count == 1 && r.products.Any((ThingDefCountClass p) => p.thingDef == this) && !r.IsSurgery); + if (recipes.Any()) + { + IEnumerable enumerable = (from u in recipes.Where((RecipeDef x) => x.recipeUsers != null).SelectMany((RecipeDef r) => r.recipeUsers) + select u.label).Concat(from x in DefDatabase.AllDefsListForReading + where x.recipes != null && x.recipes.Any((RecipeDef y) => y.products.Any((ThingDefCountClass z) => z.thingDef == this)) + select x.label).Distinct(); + if (enumerable.Any()) + { + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "CreatedAt".Translate(), enumerable.ToCommaList().CapitalizeFirst(), "Stat_Thing_CreatedAt_Desc".Translate(), 1103); + } + RecipeDef recipeDef = recipes.FirstOrDefault(); + if (recipeDef != null && !recipeDef.ingredients.NullOrEmpty()) + { + BuildableDef.tmpCostList.Clear(); + BuildableDef.tmpHyperlinks.Clear(); + for (int j = 0; j < recipeDef.ingredients.Count; j++) + { + IngredientCount ingredientCount = recipeDef.ingredients[j]; + if (ingredientCount.filter.Summary.NullOrEmpty()) + { + continue; + } + IEnumerable allowedThingDefs = ingredientCount.filter.AllowedThingDefs; + if (allowedThingDefs.Any()) + { + foreach (ThingDef p in allowedThingDefs) + { + if (!BuildableDef.tmpHyperlinks.Any((Dialog_InfoCard.Hyperlink x) => x.def == p)) + { + BuildableDef.tmpHyperlinks.Add(new Dialog_InfoCard.Hyperlink(p)); + } + } + } + BuildableDef.tmpCostList.Add(recipeDef.IngredientValueGetter.BillRequirementsDescription(recipeDef, ingredientCount)); + } + } + if (BuildableDef.tmpCostList.Any()) + { + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "Ingredients".Translate(), BuildableDef.tmpCostList.ToCommaList(), "Stat_Thing_Ingredients".Translate(), 1102, null, BuildableDef.tmpHyperlinks); + } + } + if (thingClass != null && typeof(Building_Bed).IsAssignableFrom(thingClass) && !statBases.StatListContains(StatDefOf.BedRestEffectiveness)) + { + yield return new StatDrawEntry(StatCategoryDefOf.Building, StatDefOf.BedRestEffectiveness, StatDefOf.BedRestEffectiveness.valueIfMissing, StatRequest.ForEmpty()); + } + if (!verbs.NullOrEmpty()) + { + VerbProperties verb = verbs.First((VerbProperties x) => x.isPrimary); + StatCategoryDef verbStatCategory = ((category == ThingCategory.Pawn) ? StatCategoryDefOf.PawnCombat : null); + float num = verb.warmupTime; + StringBuilder stringBuilder = new StringBuilder("Stat_Thing_Weapon_RangedWarmupTime_Desc".Translate()); + stringBuilder.AppendLine(); + stringBuilder.AppendLine(); + stringBuilder.AppendLine("StatsReport_BaseValue".Translate() + ": " + num.ToString("0.##") + " " + "LetterSecond".Translate()); + if (num > 0f) + { + if (req.HasThing) + { + float statValue = req.Thing.GetStatValue(StatDefOf.RangedWeapon_WarmupMultiplier); + num *= statValue; + if (!Mathf.Approximately(statValue, 1f)) + { + stringBuilder.AppendLine(); + stringBuilder.AppendLine("Stat_Thing_Weapon_WarmupTime_Multiplier".Translate() + ": x" + statValue.ToStringPercent()); + stringBuilder.Append(StatUtility.GetOffsetsAndFactorsFor(StatDefOf.RangedWeapon_WarmupMultiplier, req.Thing)); + } + } + stringBuilder.AppendLine(); + stringBuilder.AppendLine("StatsReport_FinalValue".Translate() + ": " + num.ToString("0.##") + " " + "LetterSecond".Translate()); + yield return new StatDrawEntry(verbStatCategory ?? StatCategoryDefOf.Weapon_Ranged, "RangedWarmupTime".Translate(), num.ToString("0.##") + " " + "LetterSecond".Translate(), stringBuilder.ToString(), 3555); + } + if (verb.defaultProjectile?.projectile.damageDef != null && verb.defaultProjectile.projectile.damageDef.harmsHealth) + { + StatCategoryDef statCat = verbStatCategory ?? StatCategoryDefOf.Weapon_Ranged; + StringBuilder stringBuilder2 = new StringBuilder(); + stringBuilder2.AppendLine("Stat_Thing_Damage_Desc".Translate()); + stringBuilder2.AppendLine(); + float num2 = verb.defaultProjectile.projectile.GetDamageAmount(req.Thing, stringBuilder2); + yield return new StatDrawEntry(statCat, "Damage".Translate(), num2.ToString(), stringBuilder2.ToString(), 5500); + if (verb.defaultProjectile.projectile.damageDef.armorCategory != null) + { + StringBuilder stringBuilder3 = new StringBuilder(); + float armorPenetration = verb.defaultProjectile.projectile.GetArmorPenetration(req.Thing, stringBuilder3); + TaggedString taggedString = "ArmorPenetrationExplanation".Translate(); + if (stringBuilder3.Length != 0) + { + taggedString += "\n\n" + stringBuilder3; + } + yield return new StatDrawEntry(statCat, "ArmorPenetration".Translate(), armorPenetration.ToStringPercent(), taggedString, 5400); + } + float buildingDamageFactor = verb.defaultProjectile.projectile.damageDef.buildingDamageFactor; + float dmgBuildingsImpassable = verb.defaultProjectile.projectile.damageDef.buildingDamageFactorImpassable; + float dmgBuildingsPassable = verb.defaultProjectile.projectile.damageDef.buildingDamageFactorPassable; + if (buildingDamageFactor != 1f) + { + yield return new StatDrawEntry(statCat, "BuildingDamageFactor".Translate(), buildingDamageFactor.ToStringPercent(), "BuildingDamageFactorExplanation".Translate(), 5410); + } + if (dmgBuildingsImpassable != 1f) + { + yield return new StatDrawEntry(statCat, "BuildingDamageFactorImpassable".Translate(), dmgBuildingsImpassable.ToStringPercent(), "BuildingDamageFactorImpassableExplanation".Translate(), 5420); + } + if (dmgBuildingsPassable != 1f) + { + yield return new StatDrawEntry(statCat, "BuildingDamageFactorPassable".Translate(), dmgBuildingsPassable.ToStringPercent(), "BuildingDamageFactorPassableExplanation".Translate(), 5430); + } + } + if (verb.defaultProjectile == null && verb.beamDamageDef != null) + { + yield return new StatDrawEntry(verbStatCategory ?? StatCategoryDefOf.Weapon_Ranged, "ArmorPenetration".Translate(), verb.beamDamageDef.defaultArmorPenetration.ToStringPercent(), "ArmorPenetrationExplanation".Translate(), 5400); + } + if (verb.Ranged) + { + float num3 = verb.burstShotCount; + float num4 = verb.ticksBetweenBurstShots; + float dmgBuildingsPassable = (verb?.defaultProjectile?.projectile?.stoppingPower).GetValueOrDefault(); + StringBuilder stringBuilder4 = new StringBuilder("Stat_Thing_Weapon_BurstShotFireRate_Desc".Translate()); + stringBuilder4.AppendLine(); + stringBuilder4.AppendLine(); + stringBuilder4.AppendLine("StatsReport_BaseValue".Translate() + ": " + verb.burstShotCount.ToString()); + stringBuilder4.AppendLine(); + StringBuilder ticksBetweenBurstShotsExplanation = new StringBuilder("Stat_Thing_Weapon_BurstShotFireRate_Desc".Translate()); + ticksBetweenBurstShotsExplanation.AppendLine(); + ticksBetweenBurstShotsExplanation.AppendLine(); + ticksBetweenBurstShotsExplanation.AppendLine("StatsReport_BaseValue".Translate() + ": " + (60f / verb.ticksBetweenBurstShots.TicksToSeconds()).ToString("0.##") + " rpm"); + ticksBetweenBurstShotsExplanation.AppendLine(); + StringBuilder stoppingPowerExplanation = new StringBuilder("StoppingPowerExplanation".Translate()); + stoppingPowerExplanation.AppendLine(); + stoppingPowerExplanation.AppendLine(); + stoppingPowerExplanation.AppendLine("StatsReport_BaseValue".Translate() + ": " + dmgBuildingsPassable.ToString("F1")); + stoppingPowerExplanation.AppendLine(); + if (req.HasThing && req.Thing.TryGetComp(out CompUniqueWeapon comp)) + { + bool flag = false; + bool flag2 = false; + bool flag3 = false; + foreach (WeaponTraitDef item2 in comp.TraitsListForReading) + { + if (!Mathf.Approximately(item2.burstShotCountMultiplier, 1f)) + { + if (!flag) + { + stringBuilder4.AppendLine("StatsReport_WeaponTraits".Translate() + ":"); + flag = true; + } + num3 *= item2.burstShotCountMultiplier; + stringBuilder4.AppendLine(" " + item2.LabelCap + ": " + item2.burstShotCountMultiplier.ToStringByStyle(ToStringStyle.PercentOne, ToStringNumberSense.Factor)); + } + if (!Mathf.Approximately(item2.burstShotSpeedMultiplier, 1f)) + { + if (!flag2) + { + ticksBetweenBurstShotsExplanation.AppendLine("StatsReport_WeaponTraits".Translate() + ":"); + flag2 = true; + } + num4 /= item2.burstShotSpeedMultiplier; + ticksBetweenBurstShotsExplanation.AppendLine(" " + item2.LabelCap + ": " + item2.burstShotSpeedMultiplier.ToStringByStyle(ToStringStyle.PercentOne, ToStringNumberSense.Factor)); + } + if (!Mathf.Approximately(item2.additionalStoppingPower, 0f)) + { + if (!flag3) + { + stoppingPowerExplanation.AppendLine("StatsReport_WeaponTraits".Translate() + ":"); + flag3 = true; + } + dmgBuildingsPassable += item2.additionalStoppingPower; + stoppingPowerExplanation.AppendLine(" " + item2.LabelCap + ": " + item2.additionalStoppingPower.ToStringByStyle(ToStringStyle.FloatOne, ToStringNumberSense.Offset)); + } + } + } + stringBuilder4.AppendLine(); + stringBuilder4.AppendLine("StatsReport_FinalValue".Translate() + ": " + Mathf.CeilToInt(num3).ToString()); + float dmgBuildingsImpassable = 60f / ((int)num4).TicksToSeconds(); + ticksBetweenBurstShotsExplanation.AppendLine(); + ticksBetweenBurstShotsExplanation.AppendLine("StatsReport_FinalValue".Translate() + ": " + dmgBuildingsImpassable.ToString("0.##") + " rpm"); + stoppingPowerExplanation.AppendLine(); + stoppingPowerExplanation.AppendLine("StatsReport_FinalValue".Translate() + ": " + dmgBuildingsPassable.ToString("F1")); + StatCategoryDef statCat = verbStatCategory ?? StatCategoryDefOf.Weapon_Ranged; + if (verb.showBurstShotStats && verb.burstShotCount > 1) + { + yield return new StatDrawEntry(statCat, "BurstShotCount".Translate(), Mathf.CeilToInt(num3).ToString(), stringBuilder4.ToString(), 5391); + yield return new StatDrawEntry(statCat, "BurstShotFireRate".Translate(), dmgBuildingsImpassable.ToString("0.##") + " rpm", ticksBetweenBurstShotsExplanation.ToString(), 5395); + } + if (dmgBuildingsPassable > 0f) + { + yield return new StatDrawEntry(statCat, "StoppingPower".Translate(), dmgBuildingsPassable.ToString("F1"), stoppingPowerExplanation.ToString(), 5402); + } + float num5 = verb.range; + StringBuilder stringBuilder5 = new StringBuilder("Stat_Thing_Weapon_Range_Desc".Translate()); + stringBuilder5.AppendLine(); + stringBuilder5.AppendLine(); + stringBuilder5.AppendLine("StatsReport_BaseValue".Translate() + ": " + num5.ToString("F0")); + if (req.HasThing) + { + float statValue2 = req.Thing.GetStatValue(StatDefOf.RangedWeapon_RangeMultiplier); + num5 *= statValue2; + if (!Mathf.Approximately(statValue2, 1f)) + { + stringBuilder5.AppendLine(); + stringBuilder5.AppendLine("Stat_Thing_Weapon_Range_Multiplier".Translate() + ": x" + statValue2.ToStringPercent()); + stringBuilder5.Append(StatUtility.GetOffsetsAndFactorsFor(StatDefOf.RangedWeapon_RangeMultiplier, req.Thing)); + } + Map obj = req.Thing.Map ?? req.Thing.MapHeld; + if (obj != null && obj.weatherManager.CurWeatherMaxRangeCap >= 0f) + { + WeatherManager weatherManager = (req.Thing.Map ?? req.Thing.MapHeld).weatherManager; + bool num6 = num5 > weatherManager.CurWeatherMaxRangeCap; + float num7 = num5; + num5 = Mathf.Min(num5, weatherManager.CurWeatherMaxRangeCap); + if (num6) + { + stringBuilder5.AppendLine(); + stringBuilder5.AppendLine(" " + "Stat_Thing_Weapon_Range_Clamped".Translate(num5.ToString("F0").Named("CAP"), num7.ToString("F0").Named("ORIGINAL"))); + } + } + } + stringBuilder5.AppendLine(); + stringBuilder5.AppendLine("StatsReport_FinalValue".Translate() + ": " + num5.ToString("F0")); + yield return new StatDrawEntry(statCat, "Range".Translate(), num5.ToString("F0"), stringBuilder5.ToString(), 5390); + } + if (verb.ForcedMissRadius > 0f) + { + StatCategoryDef statCat = verbStatCategory ?? StatCategoryDefOf.Weapon_Ranged; + yield return new StatDrawEntry(statCat, "MissRadius".Translate(), verb.ForcedMissRadius.ToString("0.#"), "Stat_Thing_Weapon_MissRadius_Desc".Translate(), 3557); + yield return new StatDrawEntry(statCat, "DirectHitChance".Translate(), (1f / (float)GenRadial.NumCellsInRadius(verb.ForcedMissRadius)).ToStringPercent(), "Stat_Thing_Weapon_DirectHitChance_Desc".Translate(), 3560); + } + } + if (plant != null) + { + foreach (StatDrawEntry item3 in plant.SpecialDisplayStats()) + { + yield return item3; + } + } + if (ingestible != null) + { + foreach (StatDrawEntry item4 in ingestible.SpecialDisplayStats()) + { + yield return item4; + } + } + if (race != null) + { + foreach (StatDrawEntry item5 in race.SpecialDisplayStats(this, req)) + { + yield return item5; + } + } + if (building != null) + { + foreach (StatDrawEntry item6 in building.SpecialDisplayStats(this, req)) + { + yield return item6; + } + } + if (isTechHediff) + { + IEnumerable enumerable2 = DefDatabase.AllDefs.Where((RecipeDef x) => x.addsHediff != null && x.IsIngredient(this)); + foreach (StatDrawEntry medicalStatsFromRecipeDef in MedicalRecipesUtility.GetMedicalStatsFromRecipeDefs(enumerable2)) + { + yield return medicalStatsFromRecipeDef; + } + } + for (int i = 0; i < comps.Count; i++) + { + foreach (StatDrawEntry item7 in comps[i].SpecialDisplayStats(req)) + { + yield return item7; + } + } + if (building != null) + { + if (building.mineableThing != null) + { + Dialog_InfoCard.Hyperlink[] hyperlinks = new Dialog_InfoCard.Hyperlink[1] + { + new Dialog_InfoCard.Hyperlink(building.mineableThing) + }; + yield return new StatDrawEntry(StatCategoryDefOf.BasicsImportant, "Stat_MineableThing_Name".Translate(), building.mineableThing.LabelCap, "Stat_MineableThing_Desc".Translate(), 2200, null, hyperlinks); + StringBuilder stringBuilder6 = new StringBuilder(); + stringBuilder6.AppendLine("Stat_MiningYield_Desc".Translate()); + stringBuilder6.AppendLine(); + stringBuilder6.AppendLine("StatsReport_DifficultyMultiplier".Translate(Find.Storyteller.difficultyDef.label) + ": " + Find.Storyteller.difficulty.mineYieldFactor.ToStringByStyle(ToStringStyle.PercentZero, ToStringNumberSense.Factor)); + yield return new StatDrawEntry(StatCategoryDefOf.Basics, "Stat_MiningYield_Name".Translate(), Mathf.CeilToInt(building.EffectiveMineableYield).ToString("F0"), stringBuilder6.ToString(), 2200, null, hyperlinks); + } + if (building.IsTurret) + { + ThingDef turret = building.turretGunDef; + yield return new StatDrawEntry(StatCategoryDefOf.BasicsImportant, "Stat_Weapon_Name".Translate(), turret.LabelCap, "Stat_Weapon_Desc".Translate(), 5389, null, new Dialog_InfoCard.Hyperlink[1] + { + new Dialog_InfoCard.Hyperlink(turret) + }); + StatRequest request = StatRequest.For(turret, null); + foreach (StatDrawEntry item8 in turret.SpecialDisplayStats(request)) + { + if (item8.category == StatCategoryDefOf.Weapon_Ranged) + { + yield return item8; + } + } + for (int i = 0; i < turret.statBases.Count; i++) + { + StatModifier statModifier = turret.statBases[i]; + if (statModifier.stat.category == StatCategoryDefOf.Weapon_Ranged) + { + yield return new StatDrawEntry(StatCategoryDefOf.Weapon_Ranged, statModifier.stat, statModifier.value, request); + } + } + } + if (ModsConfig.OdysseyActive && Fillage == FillCategory.Full) + { + bool b = building.isAirtight || (building.isStuffableAirtight && req.StuffDef.stuffProps.isAirtight); + yield return new StatDrawEntry(StatCategoryDefOf.Building, "Stat_Airtight".Translate(), b.ToStringYesNo(), "Stat_Airtight_Desc".Translate(), 6100); + } + } + if (IsMeat) + { + List list = new List(); + bool flag4 = false; + foreach (ThingDef allDef in DefDatabase.AllDefs) + { + if (allDef.race != null && allDef.race.meatDef == this && !allDef.IsCorpse) + { + if (!Find.HiddenItemsManager.Hidden(allDef)) + { + flag4 = true; + } + list.Add(allDef); + } + } + yield return new StatDrawEntry(valueString: (!flag4) ? string.Format("({0})", "NotYetDiscovered".Translate()) : string.Join(", ", (from x in list + where !Find.HiddenItemsManager.Hidden(x) + select x into p + select p.label).ToArray()).CapitalizeFirst(), category: StatCategoryDefOf.BasicsPawn, label: "Stat_SourceSpecies_Name".Translate(), reportText: "Stat_SourceSpecies_Desc".Translate(), displayPriorityWithinCategory: 1200, overrideReportTitle: null, hyperlinks: Dialog_InfoCard.DefsToHyperlinks(list)); + } + if (IsLeather) + { + List list2 = new List(); + bool flag5 = false; + foreach (ThingDef allDef2 in DefDatabase.AllDefs) + { + if (allDef2.race != null && allDef2.race.leatherDef == this && !allDef2.IsCorpse) + { + if (!Find.HiddenItemsManager.Hidden(allDef2)) + { + flag5 = true; + } + list2.Add(allDef2); + } + } + yield return new StatDrawEntry(valueString: (!flag5) ? string.Format("({0})", "NotYetDiscovered".Translate()) : string.Join(", ", (from x in list2 + where !Find.HiddenItemsManager.Hidden(x) + select x into p + select p.label).ToArray()).CapitalizeFirst(), category: StatCategoryDefOf.BasicsPawn, label: "Stat_SourceSpecies_Name".Translate(), reportText: "Stat_SourceSpecies_Desc".Translate(), displayPriorityWithinCategory: 1200, overrideReportTitle: null, hyperlinks: Dialog_InfoCard.DefsToHyperlinks(list2)); + } + if (!equippedStatOffsets.NullOrEmpty()) + { + for (int i = 0; i < equippedStatOffsets.Count; i++) + { + StatDef stat = equippedStatOffsets[i].stat; + float num8 = equippedStatOffsets[i].value; + StringBuilder stringBuilder7 = new StringBuilder(stat.description); + if (req.HasThing && stat.Worker != null) + { + stringBuilder7.AppendLine(); + stringBuilder7.AppendLine(); + stringBuilder7.AppendLine("StatsReport_BaseValue".Translate() + ": " + stat.ValueToString(num8, ToStringNumberSense.Offset, stat.finalizeEquippedStatOffset)); + num8 = StatWorker.StatOffsetFromGear(req.Thing, stat); + if (!stat.parts.NullOrEmpty()) + { + stringBuilder7.AppendLine(); + for (int k = 0; k < stat.parts.Count; k++) + { + string text = stat.parts[k].ExplanationPart(req); + if (!text.NullOrEmpty()) + { + stringBuilder7.AppendLine(text); + } + } + } + stringBuilder7.AppendLine(); + stringBuilder7.AppendLine("StatsReport_FinalValue".Translate() + ": " + stat.ValueToString(num8, ToStringNumberSense.Offset, !stat.formatString.NullOrEmpty())); + } + yield return new StatDrawEntry(StatCategoryDefOf.EquippedStatOffsets, equippedStatOffsets[i].stat, num8, StatRequest.ForEmpty(), ToStringNumberSense.Offset, null, forceUnfinalizedMode: true).SetReportText(stringBuilder7.ToString()); + } + } + if (!IsDrug) + { + yield break; + } + foreach (StatDrawEntry item9 in DrugStatsUtility.SpecialDisplayStats(this)) + { + yield return item9; + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\ThingDefs_Races\Races_Animal_Insect.xml` +**相似度:** 0.5880 + +```xml + + insect + + 1 + 1 + 60 + 0.8 + + + Insect + InsectConstant + Insectoid + Filth_BloodInsect + (160,168,139) + 0.5 + OmnivoreAnimal, AnimalProduct + 0.50 + Insectoid_Eat + false + + + +
  • InsectMeat
  • +
    +
    + true + +
  • + +
  • Food
  • + + +
  • + true + false +
  • +
    +
    +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\ThingDefs_Items\Items_Luxury.xml` +**相似度:** 0.5741 + +```xml + + Chocolate + + A delicious preparation of cocoa seeds ground together with sugar and vanilla. It fulfills the need for recreation, but it is not very nutritious. + + Things/Item/Resource/Chocolate + Graphic_StackCount + 0.88 + + Standard_Drop + Standard_Drop + true + + 60 + 3 + 0.075 + 1.0 + 8 + 0.1 + + +
  • Foods
  • +
    + + DesperateOnly + Processed + 0.10 + Gluttonous + 4 + 4 + Meal_Eat + + 80 + 10 +
    +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompMechGestatorTank.txt` +**相似度:** 0.5175 + +```csharp +public class CompMechGestatorTank : ThingComp, IThingGlower +{ + public enum TankState + { + Empty, + Dormant, + Proximity + } + + private TankState state; + + private float triggerRadius; + + private const int StunTicks = 180; + + private static readonly IntRange GestationFluidFilthRange = new IntRange(2, 4); + + private CompProperties_MechGestatorTank Props => (CompProperties_MechGestatorTank)props; + + public TankState State + { + get + { + return state; + } + set + { + state = value; + if (parent.Spawned) + { + parent.DirtyMapMesh(parent.Map); + parent.TryGetComp()?.UpdateLit(parent.Map); + } + } + } + + public override string CompInspectStringExtra() + { + return string.Format("{0}: {1}", "Contains".Translate(), ((state == TankState.Empty) ? "Nothing" : "Unknown").Translate().CapitalizeFirst()); + } + + public bool ShouldBeLitNow() + { + return state != TankState.Empty; + } + + public override bool DontDrawParent() + { + return true; + } + + public override void PostPostMake() + { + triggerRadius = Props.triggerRadiusRange.RandomInRange; + } + + public override void CompTick() + { + if (state == TankState.Proximity && parent.IsHashIntervalTick(250)) + { + CheckTrigger(); + } + } + + private void CheckTrigger() + { + if (!parent.Spawned) + { + return; + } + foreach (IntVec3 item in GenRadial.RadialCellsAround(parent.Position, triggerRadius, useCenter: false)) + { + if (!item.InBounds(parent.Map) || !GenSight.LineOfSight(parent.Position, item, parent.Map)) + { + continue; + } + foreach (Thing thing in item.GetThingList(parent.Map)) + { + if (thing is Pawn { IsColonist: not false }) + { + Trigger(parent.Map); + return; + } + } + } + } + + public override void PostDestroy(DestroyMode mode, Map previousMap) + { + if (mode != DestroyMode.WillReplace && state != 0) + { + Trigger(previousMap); + } + } + + private void Trigger(Map map) + { + if (state == TankState.Empty) + { + return; + } + State = TankState.Empty; + IntVec3 loc = parent.OccupiedRect().ExpandedBy(1).EdgeCells.Where(Standable).RandomElementWithFallback(IntVec3.Invalid); + ScatterDebrisUtility.ScatterFilthAroundThing(parent, map, ThingDefOf.Filth_GestationFluid, GestationFluidFilthRange); + if (loc.IsValid) + { + Pawn pawn = PawnGenerator.GeneratePawn(Props.mechKindOptions.RandomElementByWeight((PawnKindDefWeight x) => x.weight).kindDef, Faction.OfMechanoids); + GenSpawn.Spawn(pawn, loc, map); + pawn.stances?.stunner?.StunFor(180, null, addBattleLog: false); + if (!map.lordManager.TryGetLordByJob(Faction.OfMechanoids, out var lord)) + { + LordMaker.MakeNewLord(Faction.OfMechanoids, new LordJob_AssaultColony(Faction.OfMechanoids, canKidnap: false, canTimeoutOrFlee: false, sappers: false, useAvoidGridSmart: false, canSteal: false), map, new List { pawn }); + } + else + { + lord.lord.AddPawn(pawn); + } + Messages.Message(Props.triggeredMessage.Formatted(pawn), pawn, MessageTypeDefOf.NegativeEvent); + Props.triggerSound.PlayOneShot(parent); + } + bool Standable(IntVec3 c) + { + return c.Standable(map); + } + } + + public override IEnumerable CompGetGizmosExtra() + { + if (!DebugSettings.ShowDevGizmos) + { + yield break; + } + if (State == TankState.Empty) + { + Command_Action command_Action = new Command_Action(); + command_Action.defaultLabel = "DEV: Add mech"; + command_Action.action = delegate + { + State = TankState.Proximity; + }; + yield return command_Action; + } + else + { + Command_Action command_Action2 = new Command_Action(); + command_Action2.defaultLabel = "DEV: Remove mech"; + command_Action2.action = delegate + { + State = TankState.Empty; + }; + yield return command_Action2; + } + } + + public override void PostPrintOnto(SectionLayer layer) + { + ((state == TankState.Empty) ? Props.emptyGraphic.Graphic : Props.dormantGraphic.Graphic).Print(layer, parent, 0f); + } + + public override void PostExposeData() + { + Scribe_Values.Look(ref state, "state", TankState.Empty); + Scribe_Values.Look(ref triggerRadius, "triggerRadius", 0f); + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/HumanlikeAdult-LifeStageDef.txt b/MCP/vector_cache/HumanlikeAdult-LifeStageDef.txt new file mode 100644 index 00000000..34ab74a1 --- /dev/null +++ b/MCP/vector_cache/HumanlikeAdult-LifeStageDef.txt @@ -0,0 +1,134 @@ +根据向量相似度分析,与 'LifeStageDef, HumanlikeAdult' 最相关的代码定义如下: + +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\LifeStageDefOf.txt` +**相似度:** 0.7850 + +```csharp +public static class LifeStageDefOf +{ + public static LifeStageDef HumanlikeBaby; + + public static LifeStageDef HumanlikeChild; + + public static LifeStageDef HumanlikeAdult; +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\Misc\LifeStageDefs\LifeStages.xml` +**相似度:** 0.7399 + +```xml + + MechanoidFullyFormed + + false + +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\Misc\LifeStageDefs\LifeStages.xml` +**相似度:** 0.7399 + +```xml + HumanlikeTeenager + + LifeStageWorker_HumanlikeAdult + teenage + true + 0.8 + 0.90 + 1.25 + 0.75 + 0.65 + 0.23 + + Things/Pawn/Humanlike/Silhouettes/Silhouette_HumanChild + Graphic_Single + 1 + + + 0.95 + + + + + HumanlikeAdult +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\LifeStageWorker_HumanlikeAdult.txt` +**相似度:** 0.7169 + +```csharp +public class LifeStageWorker_HumanlikeAdult : LifeStageWorker +{ + public const int VatGrowBackstoryTicks = 1200000; + + private static readonly List VatgrowBackstoryFilter = new List + { + new BackstoryCategoryFilter + { + categories = new List { "VatGrown" } + } + }; + + private static readonly List BackstoryFiltersTribal = new List + { + new BackstoryCategoryFilter + { + categories = new List { "AdultTribal" } + } + }; + + private static readonly List BackstoryFiltersColonist = new List + { + new BackstoryCategoryFilter + { + categories = new List { "AdultColonist" } + } + }; + + public override void Notify_LifeStageStarted(Pawn pawn, LifeStageDef previousLifeStage) + { + base.Notify_LifeStageStarted(pawn, previousLifeStage); + if (Current.ProgramState != ProgramState.Playing) + { + return; + } + if (pawn.Spawned && previousLifeStage != null && previousLifeStage.developmentalStage.Juvenile()) + { + EffecterDefOf.Birthday.SpawnAttached(pawn, pawn.Map); + } + if (pawn.story.bodyType == BodyTypeDefOf.Child || pawn.story.bodyType == BodyTypeDefOf.Baby) + { + pawn.apparel?.DropAllOrMoveAllToInventory((Apparel apparel) => !apparel.def.apparel.developmentalStageFilter.Has(DevelopmentalStage.Adult)); + BodyTypeDef bodyTypeFor = PawnGenerator.GetBodyTypeFor(pawn); + pawn.story.bodyType = bodyTypeFor; + pawn.Drawer.renderer.SetAllGraphicsDirty(); + } + if (!pawn.IsColonist) + { + return; + } + List backstoryCategories = ((Faction.OfPlayer.def == FactionDefOf.PlayerTribe) ? BackstoryFiltersTribal : BackstoryFiltersColonist); + if (previousLifeStage.developmentalStage.Juvenile()) + { + if (pawn.ageTracker.vatGrowTicks >= 1200000) + { + PawnBioAndNameGenerator.FillBackstorySlotShuffled(pawn, BackstorySlot.Childhood, VatgrowBackstoryFilter, pawn.Faction?.def); + } + else + { + BackstoryDef backstory = pawn.story.GetBackstory(BackstorySlot.Childhood); + if (backstory != null && backstory.IsPlayerColonyChildBackstory) + { + PawnBioAndNameGenerator.FillBackstorySlotShuffled(pawn, BackstorySlot.Childhood, backstoryCategories, pawn.Faction?.def); + } + } + } + if (pawn.story.GetBackstory(BackstorySlot.Adulthood) == null) + { + PawnBioAndNameGenerator.FillBackstorySlotShuffled(pawn, BackstorySlot.Adulthood, backstoryCategories, pawn.Faction?.def); + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/JobDef.txt b/MCP/vector_cache/JobDef.txt new file mode 100644 index 00000000..d78f8d6d --- /dev/null +++ b/MCP/vector_cache/JobDef.txt @@ -0,0 +1,115 @@ +根据向量相似度分析,与 'JobDef' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\JobDef.txt` + +```csharp +public class JobDef : Def +{ + public Type driverClass; + + [MustTranslate] + public string reportString = "Doing something."; + + public bool playerInterruptible = true; + + public bool forceCompleteBeforeNextJob; + + public CheckJobOverrideOnDamageMode checkOverrideOnDamage = CheckJobOverrideOnDamageMode.Always; + + public bool alwaysShowWeapon; + + public bool neverShowWeapon; + + public bool suspendable = true; + + public bool casualInterruptible = true; + + public bool allowOpportunisticPrefix; + + public bool collideWithPawns; + + public bool isIdle; + + public TaleDef taleOnCompletion; + + public bool neverFleeFromEnemies; + + public bool sleepCanInterrupt = true; + + public bool makeTargetPrisoner; + + public int waitAfterArriving; + + public bool carryThingAfterJob; + + public bool dropThingBeforeJob = true; + + public bool isCrawlingIfDowned = true; + + public bool alwaysShowReport; + + public bool abilityCasting; + + public bool tryStartFlying; + + public bool ifFlyingKeepFlying; + + public float overrideFlyChance = -1f; + + public bool displayAsAreaInFloatMenu = true; + + public int joyDuration = 4000; + + public int joyMaxParticipants = 1; + + public float joyGainRate = 1f; + + public SkillDef joySkill; + + public float joyXpPerTick; + + public JoyKindDef joyKind; + + public Rot4 faceDir = Rot4.Invalid; + + public int learningDuration = 20000; + + public ReservationLayerDef containerReservationLayer; + + public override IEnumerable ConfigErrors() + { + foreach (string item in base.ConfigErrors()) + { + yield return item; + } + if (joySkill != null && joyXpPerTick == 0f) + { + yield return "funSkill is not null but funXpPerTick is zero"; + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\JobDefs\Jobs_Animal.xml` +**相似度:** 0.5912 + +```xml + + Nuzzle + JobDriver_Nuzzle + nuzzling TargetA. + true + +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Ideology\Defs\JobDefs\Jobs_Gatherings.xml` +**相似度:** 0.5788 + +```xml + + Dance + JobDriver_Dance + dancing. + +``` \ No newline at end of file diff --git a/MCP/vector_cache/JobDefOf-JobDriver_TakeToBed-Rescue.txt b/MCP/vector_cache/JobDefOf-JobDriver_TakeToBed-Rescue.txt new file mode 100644 index 00000000..c09c600b --- /dev/null +++ b/MCP/vector_cache/JobDefOf-JobDriver_TakeToBed-Rescue.txt @@ -0,0 +1,827 @@ +根据向量相似度分析,与 'JobDriver_TakeToBed, Rescue, JobDefOf' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_TakeToBed.txt` + +```csharp +public class JobDriver_TakeToBed : JobDriver +{ + private const TargetIndex TakeeIndex = TargetIndex.A; + + private const TargetIndex BedIndex = TargetIndex.B; + + protected Pawn Takee => (Pawn)job.GetTarget(TargetIndex.A).Thing; + + protected Building_Bed DropBed => (Building_Bed)job.GetTarget(TargetIndex.B).Thing; + + private bool TakeeRescued + { + get + { + if (Takee.RaceProps.Humanlike && job.def != JobDefOf.Arrest && !Takee.IsPrisonerOfColony) + { + if (Takee.ageTracker.CurLifeStage.alwaysDowned) + { + return HealthAIUtility.ShouldSeekMedicalRest(Takee); + } + return true; + } + return false; + } + } + + public override string GetReport() + { + if (job.def == JobDefOf.Rescue && !TakeeRescued) + { + return "TakingToBed".Translate(Takee); + } + return base.GetReport(); + } + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + Takee.ClearAllReservations(); + if (pawn.Reserve(Takee, job, 1, -1, null, errorOnFailed)) + { + return pawn.Reserve(DropBed, job, DropBed.SleepingSlotsCount, 0, null, errorOnFailed); + } + return false; + } + + protected override IEnumerable MakeNewToils() + { + this.FailOnDestroyedOrNull(TargetIndex.A); + this.FailOnDestroyedOrNull(TargetIndex.B); + this.FailOnAggroMentalStateAndHostile(TargetIndex.A); + this.FailOn(delegate + { + if (job.def.makeTargetPrisoner) + { + if (!DropBed.ForPrisoners) + { + return true; + } + } + else if (DropBed.ForPrisoners != Takee.IsPrisoner) + { + return true; + } + return false; + }); + yield return Toils_Bed.ClaimBedIfNonMedical(TargetIndex.B, TargetIndex.A); + AddFinishAction(delegate + { + if (job.def.makeTargetPrisoner && Takee.ownership.OwnedBed == DropBed && Takee.Position != RestUtility.GetBedSleepingSlotPosFor(Takee, DropBed)) + { + Takee.ownership.UnclaimBed(); + } + if (pawn.carryTracker.CarriedThing != null) + { + pawn.carryTracker.TryDropCarriedThing(pawn.Position, ThingPlaceMode.Direct, out var _); + } + }); + Toil goToTakee = Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.ClosestTouch).FailOnDespawnedNullOrForbidden(TargetIndex.A).FailOnDespawnedNullOrForbidden(TargetIndex.B) + .FailOn(() => job.def == JobDefOf.Arrest && !Takee.CanBeArrestedBy(pawn)) + .FailOn(() => !pawn.CanReach(DropBed, PathEndMode.OnCell, Danger.Deadly)) + .FailOn(() => (job.def == JobDefOf.Rescue || job.def == JobDefOf.Capture) && !Takee.Downed) + .FailOnSomeonePhysicallyInteracting(TargetIndex.A); + Toil checkArrestResistance = ToilMaker.MakeToil("MakeNewToils"); + checkArrestResistance.initAction = delegate + { + if (job.def.makeTargetPrisoner) + { + Pawn pawn = (Pawn)job.targetA.Thing; + pawn.GetLord()?.Notify_PawnAttemptArrested(pawn); + GenClamor.DoClamor(pawn, 10f, ClamorDefOf.Harm); + if (!pawn.IsPrisoner && !pawn.IsSlave) + { + QuestUtility.SendQuestTargetSignals(pawn.questTags, "Arrested", pawn.Named("SUBJECT")); + if (pawn.Faction != null) + { + QuestUtility.SendQuestTargetSignals(pawn.Faction.questTags, "FactionMemberArrested", pawn.Faction.Named("FACTION")); + } + } + if (job.def == JobDefOf.Arrest && !pawn.CheckAcceptArrest(base.pawn)) + { + base.pawn.jobs.EndCurrentJob(JobCondition.Incompletable); + } + } + }; + yield return Toils_Jump.JumpIf(checkArrestResistance, () => pawn.IsCarryingPawn(Takee)); + yield return goToTakee; + yield return checkArrestResistance; + Toil startCarrying = Toils_Haul.StartCarryThing(TargetIndex.A); + startCarrying.FailOnBedNoLongerUsable(TargetIndex.B, TargetIndex.A); + startCarrying.AddPreInitAction(CheckMakeTakeeGuest); + startCarrying.AddFinishAction(delegate + { + if (pawn.Faction == Takee.Faction) + { + CheckMakeTakeePrisoner(); + } + }); + Toil goToBed = Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.Touch).FailOn(() => !pawn.IsCarryingPawn(Takee)); + goToBed.FailOnBedNoLongerUsable(TargetIndex.B, TargetIndex.A); + yield return Toils_Jump.JumpIf(goToBed, () => pawn.IsCarryingPawn(Takee)); + yield return startCarrying; + yield return goToBed; + Toil toil = ToilMaker.MakeToil("MakeNewToils"); + toil.initAction = delegate + { + CheckMakeTakeePrisoner(); + if (Takee.playerSettings == null) + { + Takee.playerSettings = new Pawn_PlayerSettings(Takee); + } + }; + yield return toil; + yield return Toils_Reserve.Release(TargetIndex.B); + yield return Toils_Bed.TuckIntoBed(DropBed, pawn, Takee, TakeeRescued); + yield return Toils_General.Do(delegate + { + if (!job.ritualTag.NullOrEmpty()) + { + if (Takee.GetLord()?.LordJob is LordJob_Ritual lordJob_Ritual) + { + lordJob_Ritual.AddTagForPawn(Takee, job.ritualTag); + } + if (pawn.GetLord()?.LordJob is LordJob_Ritual lordJob_Ritual2) + { + lordJob_Ritual2.AddTagForPawn(pawn, job.ritualTag); + } + } + }); + } + + private void CheckMakeTakeePrisoner() + { + if (job.def.makeTargetPrisoner) + { + if (Takee.guest.Released) + { + Takee.guest.Released = false; + Takee.guest.SetExclusiveInteraction(PrisonerInteractionModeDefOf.MaintainOnly); + GenGuest.RemoveHealthyPrisonerReleasedThoughts(Takee); + } + if (!Takee.IsPrisonerOfColony) + { + Takee.guest.CapturedBy(Faction.OfPlayer, pawn); + } + } + } + + private void CheckMakeTakeeGuest() + { + if (!job.def.makeTargetPrisoner && Takee.Faction != Faction.OfPlayer && Takee.HostFaction != Faction.OfPlayer && Takee.guest != null && !Takee.IsWildMan() && Takee.DevelopmentalStage != DevelopmentalStage.Baby) + { + Takee.guest.SetGuestStatus(Faction.OfPlayer); + QuestUtility.SendQuestTargetSignals(Takee.questTags, "Rescued", Takee.Named("SUBJECT")); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\JobDefs\Jobs_Work.xml` +**相似度:** 0.6607 + +```xml + Rescue + JobDriver_TakeToBed + rescuing TargetA. + false + true + false +
    + + + CarryToCryptosleepCasket +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\JobDefs\Jobs_Misc.xml` +**相似度:** 0.6320 + +```xml + DeliverToBed + JobDriver_TakeToBed + delivering TargetA. + false + + + + TakeCountToInventory +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\RestUtility.txt` +**相似度:** 0.5085 + +```csharp +public static class RestUtility +{ + public const int NoSleepingDurationAfterBeingDisturbed = 400; + + private static List bedDefsBestToWorst_RestEffectiveness; + + private static List bedDefsBestToWorst_Medical; + + private static List bedDefsBestToWorst_SlabBed_RestEffectiveness; + + private static List bedDefsBestToWorst_SlabBed_Medical; + + public static List AllBedDefBestToWorst => bedDefsBestToWorst_RestEffectiveness; + + public static void Reset() + { + bedDefsBestToWorst_RestEffectiveness = (from d in DefDatabase.AllDefs + where d.IsBed + orderby d.building.bed_maxBodySize, d.GetStatValueAbstract(StatDefOf.BedRestEffectiveness) descending + select d).ToList(); + bedDefsBestToWorst_SlabBed_RestEffectiveness = (from d in DefDatabase.AllDefs + where d.IsBed + orderby (!d.building.bed_slabBed) ? 1 : 0, d.building.bed_maxBodySize, d.GetStatValueAbstract(StatDefOf.BedRestEffectiveness) descending + select d).ToList(); + bedDefsBestToWorst_Medical = (from d in DefDatabase.AllDefs + where d.IsBed + orderby d.building.bed_maxBodySize, d.GetStatValueAbstract(StatDefOf.MedicalTendQualityOffset) descending, d.GetStatValueAbstract(StatDefOf.BedRestEffectiveness) descending + select d).ToList(); + bedDefsBestToWorst_SlabBed_Medical = (from d in DefDatabase.AllDefs + where d.IsBed + orderby (!d.building.bed_slabBed) ? 1 : 0, d.building.bed_maxBodySize, d.GetStatValueAbstract(StatDefOf.MedicalTendQualityOffset) descending, d.GetStatValueAbstract(StatDefOf.BedRestEffectiveness) descending + select d).ToList(); + } + + public static bool BedOwnerWillShare(Building_Bed bed, Pawn sleeper, GuestStatus? guestStatus) + { + if (!bed.OwnersForReading.Any()) + { + return true; + } + if (sleeper.IsPrisoner || guestStatus == GuestStatus.Prisoner || sleeper.IsSlave || guestStatus == GuestStatus.Slave) + { + if (!bed.AnyUnownedSleepingSlot) + { + return false; + } + } + else + { + if (!bed.AnyUnownedSleepingSlot) + { + return false; + } + if (!IsAnyOwnerLovePartnerOf(bed, sleeper)) + { + return false; + } + } + return true; + } + + public static bool CanUseBedNow(Thing bedThing, Pawn sleeper, bool checkSocialProperness, bool allowMedBedEvenIfSetToNoCare = false, GuestStatus? guestStatusOverride = null) + { + if (!(bedThing is Building_Bed building_Bed)) + { + return false; + } + if (!building_Bed.Spawned) + { + return false; + } + if (building_Bed.Map != sleeper.MapHeld) + { + return false; + } + if (building_Bed.IsBurning()) + { + return false; + } + if (sleeper.HarmedByVacuum && building_Bed.Position.GetVacuum(bedThing.Map) >= 0.5f) + { + return false; + } + if (!CanUseBedEver(sleeper, building_Bed.def)) + { + return false; + } + if (building_Bed.CompAssignableToPawn.IdeoligionForbids(sleeper)) + { + return false; + } + int? assignedSleepingSlot; + bool flag = building_Bed.IsOwner(sleeper, out assignedSleepingSlot); + int? sleepingSlot; + bool flag2 = sleeper.CurrentBed(out sleepingSlot) == building_Bed; + if (!building_Bed.AnyUnoccupiedSleepingSlot && !flag && !flag2) + { + return false; + } + GuestStatus? obj = guestStatusOverride ?? sleeper.GuestStatus; + bool flag3 = obj == GuestStatus.Prisoner; + bool flag4 = obj == GuestStatus.Slave; + if (checkSocialProperness && !building_Bed.IsSociallyProper(sleeper, flag3)) + { + return false; + } + if (building_Bed.ForPrisoners != flag3) + { + return false; + } + if (building_Bed.ForSlaves != flag4) + { + return false; + } + if (building_Bed.ForPrisoners && !building_Bed.Position.IsInPrisonCell(building_Bed.Map)) + { + return false; + } + if (building_Bed.Medical) + { + if (!allowMedBedEvenIfSetToNoCare && !HealthAIUtility.ShouldEverReceiveMedicalCareFromPlayer(sleeper)) + { + return false; + } + if (!HealthAIUtility.ShouldSeekMedicalRest(sleeper)) + { + return false; + } + } + else + { + if (!flag && !BedOwnerWillShare(building_Bed, sleeper, guestStatusOverride)) + { + return false; + } + if (flag2 && sleepingSlot != assignedSleepingSlot) + { + return false; + } + } + if (sleeper.IsColonist && !flag3) + { + Job curJob = sleeper.CurJob; + if ((curJob == null || !curJob.ignoreForbidden) && !sleeper.Downed && building_Bed.IsForbidden(sleeper)) + { + return false; + } + } + return true; + } + + public static bool IsValidBedFor(Thing bedThing, Pawn sleeper, Pawn traveler, bool checkSocialProperness, bool allowMedBedEvenIfSetToNoCare = false, bool ignoreOtherReservations = false, GuestStatus? guestStatus = null) + { + if (!CanUseBedNow(bedThing, sleeper, checkSocialProperness, allowMedBedEvenIfSetToNoCare, guestStatus)) + { + return false; + } + Building_Bed building_Bed = (Building_Bed)bedThing; + if (!traveler.CanReach(building_Bed, PathEndMode.OnCell, Danger.Some)) + { + return false; + } + if (!sleeper.HasReserved(building_Bed) && !traveler.CanReserve(building_Bed, building_Bed.SleepingSlotsCount, 0, null, ignoreOtherReservations)) + { + return false; + } + if (traveler.HasReserved(building_Bed, sleeper)) + { + return false; + } + if (building_Bed.IsForbidden(traveler)) + { + return false; + } + bool num = guestStatus == GuestStatus.Prisoner; + bool flag = guestStatus == GuestStatus.Slave; + if (!num && !flag && building_Bed.Faction != traveler.Faction && (traveler.HostFaction == null || building_Bed.Faction != traveler.HostFaction)) + { + return false; + } + if (ModsConfig.AnomalyActive && sleeper.IsMutant && sleeper.needs.rest == null && sleeper.mutant.Def.entitledToMedicalCare && !building_Bed.Medical) + { + return false; + } + return true; + } + + public static void TuckIntoBed(Building_Bed bed, Pawn taker, Pawn takee, bool rescued) + { + IntVec3 position = bed.Position; + if (taker != takee) + { + taker.carryTracker.TryDropCarriedThing(position, ThingPlaceMode.Direct, out var _); + } + if (CanUseBedNow(bed, takee, checkSocialProperness: false)) + { + takee.jobs.Notify_TuckedIntoBed(bed); + if (taker != takee && rescued) + { + takee.relations.Notify_RescuedBy(taker); + } + takee.mindState.Notify_TuckedIntoBed(); + } + if (takee.IsPrisonerOfColony) + { + LessonAutoActivator.TeachOpportunity(ConceptDefOf.PrisonerTab, takee, OpportunityType.GoodToKnow); + } + } + + private static bool IsAnyOwnerLovePartnerOf(Building_Bed bed, Pawn sleeper) + { + for (int i = 0; i < bed.OwnersForReading.Count; i++) + { + if (LovePartnerRelationUtility.LovePartnerRelationExists(sleeper, bed.OwnersForReading[i])) + { + return true; + } + } + return false; + } + + public static Building_Bed FindBedFor(Pawn p) + { + return FindBedFor(p, p, checkSocialProperness: true, ignoreOtherReservations: false, p.GuestStatus); + } + + public static Building_Bed FindBedFor(Pawn sleeper, Pawn traveler, bool checkSocialProperness, bool ignoreOtherReservations = false, GuestStatus? guestStatus = null) + { + if (sleeper.RaceProps.IsMechanoid) + { + return null; + } + if (ModsConfig.BiotechActive && sleeper.Deathresting) + { + Building_Bed assignedDeathrestCasket = sleeper.ownership.AssignedDeathrestCasket; + if (assignedDeathrestCasket != null && IsValidBedFor(assignedDeathrestCasket, sleeper, traveler, checkSocialProperness: true)) + { + CompDeathrestBindable compDeathrestBindable = assignedDeathrestCasket.TryGetComp(); + if (compDeathrestBindable != null && (compDeathrestBindable.BoundPawn == sleeper || compDeathrestBindable.BoundPawn == null)) + { + return assignedDeathrestCasket; + } + } + } + bool flag = false; + if (sleeper.Ideo != null) + { + foreach (Precept item in sleeper.Ideo.PreceptsListForReading) + { + if (item.def.prefersSlabBed) + { + flag = true; + break; + } + } + } + List list = (flag ? bedDefsBestToWorst_SlabBed_Medical : bedDefsBestToWorst_Medical); + List list2 = (flag ? bedDefsBestToWorst_SlabBed_RestEffectiveness : bedDefsBestToWorst_RestEffectiveness); + if (HealthAIUtility.ShouldSeekMedicalRest(sleeper)) + { + if (sleeper.InBed() && sleeper.CurrentBed().Medical && IsValidBedFor(sleeper.CurrentBed(), sleeper, traveler, checkSocialProperness, allowMedBedEvenIfSetToNoCare: false, ignoreOtherReservations, guestStatus)) + { + return sleeper.CurrentBed(); + } + for (int i = 0; i < list.Count; i++) + { + ThingDef thingDef = list[i]; + if (!CanUseBedEver(sleeper, thingDef)) + { + continue; + } + for (int j = 0; j < 2; j++) + { + Danger maxDanger = ((j == 0) ? Danger.None : Danger.Deadly); + Building_Bed building_Bed = (Building_Bed)GenClosest.ClosestThingReachable(sleeper.Position, sleeper.MapHeld, ThingRequest.ForDef(thingDef), PathEndMode.OnCell, TraverseParms.For(traveler), 9999f, (Thing b) => ((Building_Bed)b).Medical && (int)b.Position.GetDangerFor(sleeper, sleeper.Map) <= (int)maxDanger && IsValidBedFor(b, sleeper, traveler, checkSocialProperness, allowMedBedEvenIfSetToNoCare: false, ignoreOtherReservations, guestStatus)); + if (building_Bed != null) + { + return building_Bed; + } + } + } + } + if (sleeper.RaceProps.Dryad) + { + return null; + } + if (sleeper.ownership != null && sleeper.ownership.OwnedBed != null && IsValidBedFor(sleeper.ownership.OwnedBed, sleeper, traveler, checkSocialProperness, allowMedBedEvenIfSetToNoCare: false, ignoreOtherReservations, guestStatus)) + { + return sleeper.ownership.OwnedBed; + } + DirectPawnRelation directPawnRelation = LovePartnerRelationUtility.ExistingMostLikedLovePartnerRel(sleeper, allowDead: false); + if (directPawnRelation != null) + { + Building_Bed ownedBed = directPawnRelation.otherPawn.ownership.OwnedBed; + if (ownedBed != null && IsValidBedFor(ownedBed, sleeper, traveler, checkSocialProperness, allowMedBedEvenIfSetToNoCare: false, ignoreOtherReservations, guestStatus)) + { + return ownedBed; + } + } + for (int dg = 0; dg < 3; dg++) + { + Danger maxDanger = ((dg <= 1) ? Danger.None : Danger.Deadly); + for (int k = 0; k < list2.Count; k++) + { + ThingDef thingDef2 = list2[k]; + if (!CanUseBedEver(sleeper, thingDef2)) + { + continue; + } + Building_Bed building_Bed2 = (Building_Bed)GenClosest.ClosestThingReachable(sleeper.PositionHeld, sleeper.MapHeld, ThingRequest.ForDef(thingDef2), PathEndMode.OnCell, TraverseParms.For(traveler), 9999f, (Thing b) => !((Building_Bed)b).Medical && (int)b.Position.GetDangerFor(sleeper, sleeper.MapHeld) <= (int)maxDanger && IsValidBedFor(b, sleeper, traveler, checkSocialProperness, allowMedBedEvenIfSetToNoCare: false, ignoreOtherReservations, guestStatus) && (dg > 0 || !b.Position.GetItems(b.Map).Any((Thing thing) => thing.def.IsCorpse))); + if (building_Bed2 != null) + { + return building_Bed2; + } + } + } + return null; + } + + public static Building_Bed FindPatientBedFor(Pawn pawn) + { + Predicate medBedValidator = delegate(Thing t) + { + if (!(t is Building_Bed building_Bed2)) + { + return false; + } + if (!building_Bed2.Medical) + { + return false; + } + return IsValidBedFor(building_Bed2, pawn, pawn, checkSocialProperness: false, allowMedBedEvenIfSetToNoCare: true, ignoreOtherReservations: false, pawn.GuestStatus) ? true : false; + }; + if (pawn.InBed() && medBedValidator(pawn.CurrentBed())) + { + return pawn.CurrentBed(); + } + for (int i = 0; i < 2; i++) + { + Danger maxDanger = ((i == 0) ? Danger.None : Danger.Deadly); + Building_Bed building_Bed = (Building_Bed)GenClosest.ClosestThingReachable(pawn.Position, pawn.Map, ThingRequest.ForGroup(ThingRequestGroup.Bed), PathEndMode.OnCell, TraverseParms.For(pawn), 9999f, (Thing b) => (int)b.Position.GetDangerFor(pawn, pawn.Map) <= (int)maxDanger && medBedValidator(b)); + if (building_Bed != null) + { + return building_Bed; + } + } + return FindBedFor(pawn); + } + + public static IntVec3 GetBedSleepingSlotPosFor(Pawn pawn, Building_Bed bed) + { + if (bed.IsOwner(pawn, out var assignedSleepingSlot)) + { + return bed.GetSleepingSlotPos(assignedSleepingSlot.Value); + } + for (int i = 0; i < bed.SleepingSlotsCount; i++) + { + Pawn curOccupant = bed.GetCurOccupant(i); + if ((i >= bed.OwnersForReading.Count || bed.OwnersForReading[i] == null) && curOccupant == pawn) + { + return bed.GetSleepingSlotPos(i); + } + } + for (int j = 0; j < bed.SleepingSlotsCount; j++) + { + Pawn curOccupant2 = bed.GetCurOccupant(j); + if ((j >= bed.OwnersForReading.Count || bed.OwnersForReading[j] == null) && curOccupant2 == null) + { + return bed.GetSleepingSlotPos(j); + } + } + Log.Error("Could not find good sleeping slot position for " + pawn?.ToString() + ". Perhaps AnyUnoccupiedSleepingSlot check is missing somewhere."); + return bed.GetSleepingSlotPos(0); + } + + public static void KickOutOfBed(Pawn pawn, Building_Bed bed) + { + if (pawn == null) + { + return; + } + if (!pawn.Spawned) + { + Log.Error("Tried to kick unspawned pawn " + pawn.ToStringSafe() + " out of bed."); + } + if (!pawn.Dead && !pawn.GetPosture().InBed()) + { + Log.Error("Tried to kick pawn " + pawn.ToStringSafe() + " out of bed when they weren't in bed."); + } + int? sleepingSlot; + Building_Bed building_Bed = pawn.CurrentBed(out sleepingSlot); + if (building_Bed != bed) + { + if (building_Bed == null) + { + bed = null; + } + else + { + Log.Error("Tried to kick pawn " + pawn.ToStringSafe() + " out of a bed they're not currently in."); + } + } + pawn.jobs.posture &= ~PawnPosture.InBedMask; + if (bed != null && (pawn.Downed || pawn.Deathresting)) + { + pawn.Position = bed.GetFootSlotPos(sleepingSlot.Value); + } + } + + public static bool CanUseBedEver(Pawn p, ThingDef bedDef) + { + if (p.RaceProps.IsMechanoid) + { + return false; + } + if (p.BodySize > bedDef.building.bed_maxBodySize) + { + return false; + } + if (p.RaceProps.Humanlike != bedDef.building.bed_humanlike) + { + return false; + } + if (ModsConfig.BiotechActive && bedDef == ThingDefOf.DeathrestCasket && !p.CanDeathrest()) + { + return false; + } + return true; + } + + public static bool TimetablePreventsLayDown(Pawn pawn) + { + if (pawn.timetable?.CurrentAssignment != null && !pawn.timetable.CurrentAssignment.allowRest && pawn.needs?.rest != null && pawn.needs.rest.CurLevel >= 0.2f) + { + return true; + } + return false; + } + + public static bool DisturbancePreventsLyingDown(Pawn pawn) + { + if (pawn.Downed) + { + return false; + } + return Find.TickManager.TicksGame - pawn.mindState.lastDisturbanceTick < 400; + } + + public static bool Awake(this Pawn p) + { + if (!p.health.capacities.CanBeAwake) + { + return false; + } + if (p.CurJob != null && p.jobs.curDriver != null) + { + return !p.jobs.curDriver.asleep; + } + return true; + } + + public static bool IsSelfShutdown(this Pawn p) + { + if (p.needs?.energy == null) + { + return false; + } + return p.needs.energy.IsSelfShutdown; + } + + public static bool IsDeactivated(this Pawn p) + { + return p.TryGetComp()?.Deactivated ?? false; + } + + public static bool IsActivityDormant(this Pawn p) + { + if (p.GetComp() == null) + { + return false; + } + return p.GetComp().IsActive; + } + + public static bool IsCharging(this Pawn p) + { + return p.needs?.energy?.currentCharger != null; + } + + public static Building_Bed CurrentBed(this Pawn p) + { + int? sleepingSlot; + return p.CurrentBed(out sleepingSlot); + } + + public static Building_Bed CurrentBed(this Pawn p, out int? sleepingSlot) + { + sleepingSlot = null; + if (!p.Spawned || p.CurJob == null || !p.GetPosture().InBed()) + { + return null; + } + Building_Bed building_Bed = null; + List thingList = p.Position.GetThingList(p.Map); + for (int i = 0; i < thingList.Count; i++) + { + building_Bed = thingList[i] as Building_Bed; + if (building_Bed != null) + { + break; + } + } + if (building_Bed == null) + { + return null; + } + for (int j = 0; j < building_Bed.SleepingSlotsCount; j++) + { + if (building_Bed.GetCurOccupant(j) == p) + { + sleepingSlot = j; + return building_Bed; + } + } + return null; + } + + public static bool InBed(this Pawn p) + { + return p.CurrentBed() != null; + } + + public static bool IsLayingForJobCleanup(Pawn p) + { + if (!p.InBed()) + { + if (p.CurJob != null && p.CurJob.def == JobDefOf.LayDown) + { + return p.GetPosture().Laying(); + } + return false; + } + return true; + } + + public static void WakeUp(Pawn p, bool startNewJob = true) + { + if (p.CurJob != null && (p.GetPosture().Laying() || p.CurJobDef == JobDefOf.LayDown) && !p.Downed) + { + p.jobs.EndCurrentJob(JobCondition.InterruptForced, startNewJob); + } + p.GetComp()?.WakeUp(); + if (p.mindState != null) + { + p.mindState.hibernationEndedTick = GenTicks.TicksGame; + } + } + + public static bool ShouldWakeUp(Pawn pawn) + { + if (pawn.Deathresting) + { + return false; + } + if (pawn.needs?.rest != null && !(pawn.needs.rest.CurLevel >= WakeThreshold(pawn))) + { + return pawn.health.hediffSet.HasHediffBlocksSleeping(); + } + return true; + } + + public static bool CanFallAsleep(Pawn pawn) + { + if (pawn.Deathresting) + { + return true; + } + Pawn_NeedsTracker needs = pawn.needs; + if (needs != null && needs.food?.Starving == true && !pawn.ageTracker.CurLifeStage.canSleepWhenStarving) + { + return false; + } + if (pawn.mindState != null && Find.TickManager.TicksGame - pawn.mindState.lastDisturbanceTick < 400) + { + return false; + } + if (pawn.needs?.rest?.CurLevel < FallAsleepMaxLevel(pawn) && !pawn.health.hediffSet.HasHediffBlocksSleeping()) + { + return pawn.CurJobDef?.sleepCanInterrupt ?? true; + } + return false; + } + + private static float WakeThreshold(Pawn p) + { + Lord lord = p.GetLord(); + if (lord != null && lord.CurLordToil != null && lord.CurLordToil.CustomWakeThreshold.HasValue) + { + return lord.CurLordToil.CustomWakeThreshold.Value; + } + return p.ageTracker.CurLifeStage?.naturalWakeThresholdOverride ?? 1f; + } + + private static float FallAsleepMaxLevel(Pawn p) + { + return Mathf.Min(p.ageTracker.CurLifeStage?.fallAsleepMaxThresholdOverride ?? 0.75f, WakeThreshold(p) - 0.01f); + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/JobDriver_EnterCryptosleepCasket.txt b/MCP/vector_cache/JobDriver_EnterCryptosleepCasket.txt new file mode 100644 index 00000000..5166933a --- /dev/null +++ b/MCP/vector_cache/JobDriver_EnterCryptosleepCasket.txt @@ -0,0 +1,70 @@ +根据向量相似度分析,与 'JobDriver_EnterCryptosleepCasket' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_EnterCryptosleepCasket.txt` + +```csharp +public class JobDriver_EnterCryptosleepCasket : JobDriver +{ + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return pawn.Reserve(job.targetA, job, 1, -1, null, errorOnFailed); + } + + protected override IEnumerable MakeNewToils() + { + this.FailOnDespawnedOrNull(TargetIndex.A); + yield return Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.InteractionCell); + Toil toil = Toils_General.Wait(500); + toil.FailOnCannotTouch(TargetIndex.A, PathEndMode.InteractionCell); + toil.WithProgressBarToilDelay(TargetIndex.A); + yield return toil; + Toil enter = ToilMaker.MakeToil("MakeNewToils"); + _003C_003Ec__DisplayClass1_0 CS_0024_003C_003E8__locals0; + enter.initAction = delegate + { + Building_CryptosleepCasket pod = (Building_CryptosleepCasket)((Pawn)(object)CS_0024_003C_003E8__locals0).CurJob.targetA.Thing; + Action action = delegate + { + bool flag = ((Thing)(object)CS_0024_003C_003E8__locals0).DeSpawnOrDeselect(DestroyMode.Vanish); + if (pod.TryAcceptThing((Thing)(object)CS_0024_003C_003E8__locals0) && flag) + { + Find.Selector.Select(CS_0024_003C_003E8__locals0, playSound: false, forceDesignatorDeselect: false); + } + }; + if (!pod.def.building.isPlayerEjectable) + { + if (base.Map.mapPawns.FreeColonistsSpawnedOrInPlayerEjectablePodsCount <= 1) + { + Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("CasketWarning".Translate(CS_0024_003C_003E8__locals0.Named("PAWN")).AdjustedFor((Pawn)(object)CS_0024_003C_003E8__locals0), action)); + } + else + { + action(); + } + } + else + { + action(); + } + }; + enter.defaultCompleteMode = ToilCompleteMode.Instant; + yield return enter; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\JobDefs\Jobs_Misc.xml` +**相似度:** 0.5540 + +```xml + EnterCryptosleepCasket + JobDriver_EnterCryptosleepCasket + entering cryptosleep casket. + EnteredCryptosleep + true + + + + UseNeurotrainer +``` \ No newline at end of file diff --git a/MCP/vector_cache/PawnKindDef-lifeStages.txt b/MCP/vector_cache/PawnKindDef-lifeStages.txt new file mode 100644 index 00000000..20e16166 --- /dev/null +++ b/MCP/vector_cache/PawnKindDef-lifeStages.txt @@ -0,0 +1,535 @@ +根据向量相似度分析,与 'PawnKindDef, lifeStages' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\PawnKindDef.txt` + +```csharp +public class PawnKindDef : Def +{ + public ThingDef race; + + [LoadAlias("defaultFactionType")] + public FactionDef defaultFactionDef; + + [NoTranslate] + public List backstoryFilters; + + [NoTranslate] + public List backstoryFiltersOverride; + + [NoTranslate] + public List backstoryCategories; + + [MustTranslate] + public string labelPlural; + + public List lifeStages = new List(); + + public List alternateGraphics; + + [XmlInheritanceAllowDuplicateNodes] + public List forcedTraits; + + [XmlInheritanceAllowDuplicateNodes] + public List disallowedTraitsWithDegree; + + public List disallowedTraits; + + public float alternateGraphicChance; + + public MutantDef mutant; + + public XenotypeSet xenotypeSet; + + public bool useFactionXenotypes = true; + + [LoadAlias("hairTags")] + public List styleItemTags; + + public HairDef forcedHair; + + public Color? forcedHairColor; + + public List missingParts; + + public RulePackDef nameMaker; + + public RulePackDef nameMakerFemale; + + public List abilities; + + public bool preventIdeo; + + public bool studiableAsPrisoner; + + public bool isBoss; + + public Dictionary moveSpeedFactorByTerrainTag = new Dictionary(); + + public List fixedChildBackstories = new List(); + + public List fixedAdultBackstories = new List(); + + public float backstoryCryptosleepCommonality; + + public FloatRange? chronologicalAgeRange; + + public int minGenerationAge; + + public int maxGenerationAge = 999999; + + public bool factionLeader; + + public Gender? fixedGender; + + public bool allowOldAgeInjuries = true; + + public bool generateInitialNonFamilyRelations = true; + + public DevelopmentalStage? pawnGroupDevelopmentStage; + + public bool destroyGearOnDrop; + + public bool canStrip = true; + + public float defendPointRadius = -1f; + + public bool factionHostileOnKill; + + public bool factionHostileOnDeath; + + public bool hostileToAll; + + public FloatRange? initialResistanceRange; + + public FloatRange? initialWillRange; + + public bool forceNoDeathNotification; + + public bool skipResistant; + + public float controlGroupPortraitZoom = 1f; + + public float? overrideDeathOnDownedChance; + + public bool forceDeathOnDowned; + + public bool immuneToGameConditionEffects; + + public bool immuneToTraps; + + public bool collidesWithPawns = true; + + public bool ignoresPainShock; + + public bool canMeleeAttack = true; + + public float basePrisonBreakMtbDays = 60f; + + public bool useFixedRotation; + + public Rot4 fixedRotation; + + public bool showInDebugSpawner = true; + + public bool canOpenAnyDoor; + + public bool canOpenDoors = true; + + [NoTranslate] + public string overrideDebugActionCategory; + + public float royalTitleChance; + + public RoyalTitleDef titleRequired; + + public RoyalTitleDef minTitleRequired; + + public List titleSelectOne; + + public bool allowRoyalRoomRequirements = true; + + public bool allowRoyalApparelRequirements = true; + + public List meleeAttackInfectionPathways; + + public List rangedAttackInfectionPathways; + + public bool isFighter = true; + + public float combatPower = -1f; + + public bool canArriveManhunter = true; + + public bool canBeSapper; + + public bool isGoodBreacher; + + public bool allowInMechClusters = true; + + public int maxPerGroup = int.MaxValue; + + public bool isGoodPsychicRitualInvoker; + + public bool canBeScattered = true; + + public bool appearsRandomlyInCombatGroups = true; + + public bool aiAvoidCover; + + public FloatRange fleeHealthThresholdRange = new FloatRange(-0.4f, 0.4f); + + public float acceptArrestChanceFactor = 1f; + + public bool canUseAvoidGrid; + + public QualityCategory itemQuality = QualityCategory.Normal; + + public QualityCategory? forceWeaponQuality; + + public bool forceNormalGearQuality; + + public FloatRange gearHealthRange = FloatRange.One; + + public FloatRange weaponMoney = FloatRange.Zero; + + [NoTranslate] + public List weaponTags; + + public ThingDef weaponStuffOverride; + + public ThingStyleDef weaponStyleDef; + + public FloatRange apparelMoney = FloatRange.Zero; + + public List apparelRequired; + + [NoTranslate] + public List apparelTags; + + [NoTranslate] + public List apparelDisallowTags; + + public float apparelAllowHeadgearChance = 1f; + + public bool apparelIgnoreSeasons; + + public bool apparelIgnorePollution; + + public bool ignoreFactionApparelStuffRequirements; + + public Color apparelColor = Color.white; + + public Color? skinColorOverride; + + public ColorDef favoriteColor; + + public bool ignoreIdeoApparelColors; + + public List specificApparelRequirements; + + public List techHediffsRequired; + + public FloatRange techHediffsMoney = FloatRange.Zero; + + [NoTranslate] + public List techHediffsTags; + + [NoTranslate] + public List techHediffsDisallowTags; + + public float techHediffsChance; + + public int techHediffsMaxAmount = 1; + + public float biocodeWeaponChance; + + public float humanPregnancyChance = 0.03f; + + public List startingHediffs; + + public float nakedChance; + + public List existingDamage = new List(); + + public QualityCategory minApparelQuality; + + public QualityCategory maxApparelQuality = QualityCategory.Excellent; + + public List fixedInventory = new List(); + + public PawnInventoryOption inventoryOptions; + + public float invNutrition; + + public ThingDef invFoodDef; + + public float chemicalAddictionChance; + + public float combatEnhancingDrugsChance; + + public IntRange combatEnhancingDrugsCount = IntRange.Zero; + + public List forcedAddictions = new List(); + + public bool trader; + + public List skills; + + public WorkTags requiredWorkTags; + + public WorkTags disabledWorkTags; + + public int extraSkillLevels; + + public int minTotalSkillLevels; + + public int minBestSkillLevel; + + [MustTranslate] + public string labelMale; + + [MustTranslate] + public string labelMalePlural; + + [MustTranslate] + public string labelFemale; + + [MustTranslate] + public string labelFemalePlural; + + public IntRange wildGroupSize = IntRange.One; + + public float ecoSystemWeight = 1f; + + [NoTranslate] + public string flyingAnimationFramePathPrefix; + + [NoTranslate] + public string flyingAnimationFramePathPrefixFemale; + + public int flyingAnimationFrameCount; + + public int flyingAnimationTicksPerFrame = -1; + + public float flyingAnimationDrawSize = 1f; + + public bool flyingAnimationDrawSizeIsMultiplier; + + public bool flyingAnimationInheritColors; + + private const int MaxWeaponMoney = 999999; + + public RaceProperties RaceProps => race.race; + + public override void ResolveReferences() + { + base.ResolveReferences(); + for (int i = 0; i < lifeStages.Count; i++) + { + lifeStages[i].ResolveReferences(); + } + } + + public string GetLabelPlural(int count = -1) + { + if (!labelPlural.NullOrEmpty()) + { + return labelPlural; + } + return Find.ActiveLanguageWorker.Pluralize(label, count); + } + + public string GetLabelGendered(Gender gender) + { + if (gender == Gender.Female && !labelFemale.NullOrEmpty()) + { + return labelFemale; + } + if (gender == Gender.Male && !labelMale.NullOrEmpty()) + { + return labelMale; + } + return label; + } + + public RulePackDef GetNameMaker(Gender gender) + { + if (gender == Gender.Female && nameMakerFemale != null) + { + return nameMakerFemale; + } + if (nameMaker != null) + { + return nameMaker; + } + return null; + } + + public override void PostLoad() + { + if (backstoryCategories != null && backstoryCategories.Count > 0) + { + if (backstoryFilters == null) + { + backstoryFilters = new List(); + } + backstoryFilters.Add(new BackstoryCategoryFilter + { + categories = backstoryCategories + }); + } + LongEventHandler.ExecuteWhenFinished(delegate + { + foreach (PawnKindLifeStage lifeStage in lifeStages) + { + if (lifeStage.swimmingGraphicData != null && lifeStage.swimmingGraphicData.shaderType == null) + { + lifeStage.swimmingGraphicData.shaderType = ShaderTypeDefOf.Transparent; + } + if (lifeStage.femaleSwimmingGraphicData != null && lifeStage.femaleSwimmingGraphicData.shaderType == null) + { + lifeStage.femaleSwimmingGraphicData.shaderType = ShaderTypeDefOf.Transparent; + } + } + }); + } + + public float GetAnimalPointsToHuntOrSlaughter() + { + return combatPower * 5f * (1f + RaceProps.manhunterOnDamageChance * 0.5f) * (1f + RaceProps.manhunterOnTameFailChance * 0.2f) * (1f + race.GetStatValueAbstract(StatDefOf.Wildness)) + race.BaseMarketValue; + } + + public override IEnumerable ConfigErrors() + { + foreach (string item in base.ConfigErrors()) + { + yield return item; + } + if (backstoryFilters != null && backstoryFiltersOverride != null) + { + yield return "both backstoryCategories and backstoryCategoriesOverride are defined"; + } + if (race == null) + { + yield return "no race"; + } + if (combatPower < 0f) + { + yield return defName + " has no combatPower."; + } + if (weaponMoney != FloatRange.Zero) + { + if (weaponTags == null) + { + yield return "weaponMoney is set but weaponTags is not."; + } + else + { + float num = 999999f; + int i; + for (i = 0; i < weaponTags.Count; i++) + { + IEnumerable source = DefDatabase.AllDefs.Where((ThingDef d) => d.weaponTags != null && d.weaponTags.Contains(weaponTags[i])); + if (source.Any()) + { + num = Mathf.Min(num, source.Min((Func)PawnWeaponGenerator.CheapestNonDerpPriceFor)); + } + } + if (num < 999999f && num > weaponMoney.min) + { + yield return "Cheapest weapon with one of my weaponTags costs " + num + " but weaponMoney min is " + weaponMoney.min + ", so could end up weaponless."; + } + } + } + if (!RaceProps.Humanlike && lifeStages.Count != RaceProps.lifeStageAges.Count) + { + yield return "PawnKindDef defines " + lifeStages.Count + " lifeStages while race def defines " + RaceProps.lifeStageAges.Count; + } + if (apparelRequired != null) + { + for (int i = 0; i < apparelRequired.Count; i++) + { + for (int j = i + 1; j < apparelRequired.Count; j++) + { + if (!ApparelUtility.CanWearTogether(apparelRequired[i], apparelRequired[j], race.race.body)) + { + yield return "required apparel can't be worn together (" + apparelRequired[i]?.ToString() + ", " + apparelRequired[j]?.ToString() + ")"; + } + } + } + } + if (alternateGraphics != null) + { + foreach (AlternateGraphic alternateGraphic in alternateGraphics) + { + if (alternateGraphic.Weight < 0f) + { + yield return "alternate graphic has negative weight."; + } + } + } + if (RaceProps.Humanlike && !initialResistanceRange.HasValue) + { + yield return "initial resistance range is undefined for humanlike pawn kind."; + } + if (RaceProps.Humanlike && !initialWillRange.HasValue) + { + yield return "initial will range is undefined for humanlike pawn kind."; + } + if (startingHediffs == null) + { + yield break; + } + foreach (StartingHediff startingHediff in startingHediffs) + { + if (startingHediff.durationTicksRange.HasValue && startingHediff.def.CompProps() == null) + { + yield return "starting hediff " + startingHediff.def.defName + " has duration ticks set but doesn't have Disappears comp."; + } + } + } + + public static PawnKindDef Named(string defName) + { + return DefDatabase.GetNamed(defName); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Anomaly\Defs\PawnKinds\PawnKinds_Fleshbeasts.xml` +**相似度:** 0.5160 + +```xml + + Entities + Entity + +
  • EntityAttacked
  • +
    +
    +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Anomaly\Defs\PawnKinds\PawnKinds_Fleshbeasts.xml` +**相似度:** 0.5160 + +```xml + Bulbfreak + + 0.9 + Bulbfreak + 360 + +
  • + + Things/Pawn/Fleshbeast/Bulbfreak/Bulbfreak + Graphic_Multi + 3 + +
  • +
    +
    + + + Fingerspike +``` \ No newline at end of file diff --git a/MCP/vector_cache/Pawn_InventoryTracker-get_FirstUnloadableThing.txt b/MCP/vector_cache/Pawn_InventoryTracker-get_FirstUnloadableThing.txt new file mode 100644 index 00000000..5fd164b6 --- /dev/null +++ b/MCP/vector_cache/Pawn_InventoryTracker-get_FirstUnloadableThing.txt @@ -0,0 +1,4149 @@ +根据向量相似度分析,与 'get_FirstUnloadableThing, Pawn_InventoryTracker' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\Pawn_InventoryTracker.txt` + +```csharp +public class Pawn_InventoryTracker : IThingHolder, IExposable +{ + public Pawn pawn; + + public ThingOwner innerContainer; + + private bool unloadEverything; + + private List itemsNotForSale = new List(); + + private List unpackedCaravanItems = new List(); + + public static readonly Texture2D DrugTex = ContentFinder.Get("UI/Commands/TakeDrug"); + + private static List tmpItemsToKeep = new List(); + + private static readonly List tmpThingList = new List(); + + private List usableDrugsTmp = new List(); + + public bool UnloadEverything + { + get + { + if (unloadEverything) + { + return HasAnyUnloadableThing; + } + return false; + } + set + { + if (value && HasAnyUnloadableThing) + { + unloadEverything = true; + } + else + { + unloadEverything = false; + } + } + } + + public bool HasAnyUnpackedCaravanItems => unpackedCaravanItems.Count > 0; + + private bool HasAnyUnloadableThing => FirstUnloadableThing != default(ThingCount); + + public ThingCount FirstUnloadableThing + { + get + { + if (innerContainer.Count == 0) + { + return default(ThingCount); + } + if (pawn.drugs?.CurrentPolicy != null) + { + DrugPolicy currentPolicy = pawn.drugs.CurrentPolicy; + tmpItemsToKeep.Clear(); + for (int i = 0; i < currentPolicy.Count; i++) + { + if (currentPolicy[i].takeToInventory > 0) + { + tmpItemsToKeep.Add(new ThingDefCount(currentPolicy[i].drug, currentPolicy[i].takeToInventory)); + } + } + } + Pawn_InventoryStockTracker inventoryStock = pawn.inventoryStock; + if (inventoryStock != null && inventoryStock.stockEntries?.Count > 0) + { + foreach (InventoryStockEntry value in pawn.inventoryStock.stockEntries.Values) + { + tmpItemsToKeep.Add(new ThingDefCount(value.thingDef, value.count)); + } + } + foreach (Thing item in innerContainer) + { + int num = -1; + for (int j = 0; j < tmpItemsToKeep.Count; j++) + { + if (item.def == tmpItemsToKeep[j].ThingDef) + { + num = j; + break; + } + } + if (pawn.IsColonist && item.def.IsNutritionGivingIngestible && !item.def.IsDrug && JobGiver_PackFood.IsGoodPackableFoodFor(item, pawn, checkMass: false)) + { + float inventoryPackableFoodNutrition = JobGiver_PackFood.GetInventoryPackableFoodNutrition(pawn); + float maxLevel = pawn.needs.food.MaxLevel; + if (inventoryPackableFoodNutrition - item.GetStatValue(StatDefOf.Nutrition) * (float)item.stackCount <= maxLevel) + { + int k; + for (k = 0; inventoryPackableFoodNutrition - item.GetStatValue(StatDefOf.Nutrition) * (float)k > maxLevel; k++) + { + } + if (item.stackCount - k > 0) + { + tmpItemsToKeep.Add(new ThingDefCount(item.def, item.stackCount - k)); + num = tmpItemsToKeep.Count - 1; + } + } + } + if (num < 0) + { + return new ThingCount(item, item.stackCount); + } + if (item.stackCount > tmpItemsToKeep[num].Count) + { + return new ThingCount(item, item.stackCount - tmpItemsToKeep[num].Count); + } + tmpItemsToKeep[num] = new ThingDefCount(tmpItemsToKeep[num].ThingDef, tmpItemsToKeep[num].Count - item.stackCount); + } + return default(ThingCount); + } + } + + public IThingHolder ParentHolder => pawn; + + public Pawn_InventoryTracker(Pawn pawn) + { + this.pawn = pawn; + innerContainer = new ThingOwner(this, oneStackOnly: false); + } + + public void ExposeData() + { + Scribe_Collections.Look(ref itemsNotForSale, "itemsNotForSale", LookMode.Reference); + Scribe_Collections.Look(ref unpackedCaravanItems, "unpackedCaravanItems", LookMode.Reference); + Scribe_Deep.Look(ref innerContainer, "innerContainer", this); + Scribe_Values.Look(ref unloadEverything, "unloadEverything", defaultValue: false); + } + + public void InventoryTrackerTick() + { + if (unloadEverything && !HasAnyUnloadableThing) + { + unloadEverything = false; + } + } + + public void DropAllNearPawn(IntVec3 pos, bool forbid = false, bool unforbid = false) + { + DropAllNearPawnHelper(pos, forbid, unforbid); + } + + private void DropAllNearPawnHelper(IntVec3 pos, bool forbid = false, bool unforbid = false, bool caravanHaulOnly = false) + { + if (pawn.MapHeld == null) + { + Log.Error("Tried to drop all inventory near pawn but the pawn is unspawned. pawn=" + pawn); + return; + } + tmpThingList.Clear(); + if (caravanHaulOnly) + { + tmpThingList.AddRange(unpackedCaravanItems); + } + else + { + tmpThingList.AddRange(innerContainer); + } + int i; + for (i = 0; i < tmpThingList.Count; i++) + { + if (caravanHaulOnly && !innerContainer.Contains(tmpThingList[i])) + { + unpackedCaravanItems.Remove(tmpThingList[i]); + Log.Warning("Could not drop unpacked caravan item " + tmpThingList[i].Label + ", inventory no longer contains it"); + continue; + } + innerContainer.TryDrop(tmpThingList[i], pos, pawn.MapHeld, ThingPlaceMode.Near, out var _, delegate(Thing t, int unused) + { + if (forbid) + { + t.SetForbiddenIfOutsideHomeArea(); + } + if (unforbid) + { + t.SetForbidden(value: false, warnOnFail: false); + } + if (t.def.IsPleasureDrug) + { + LessonAutoActivator.TeachOpportunity(ConceptDefOf.DrugBurning, OpportunityType.Important); + } + LordJob_FormAndSendCaravan lordJob_FormAndSendCaravan = CaravanFormingUtility.GetFormAndSendCaravanLord(pawn)?.LordJob as LordJob_FormAndSendCaravan; + if (caravanHaulOnly && lordJob_FormAndSendCaravan != null && lordJob_FormAndSendCaravan.GatheringItemsNow) + { + CaravanFormingUtility.TryAddItemBackToTransferables(t, lordJob_FormAndSendCaravan.transferables, tmpThingList[i].stackCount); + } + unpackedCaravanItems.Remove(tmpThingList[i]); + }); + } + } + + public void DropCount(ThingDef def, int count, bool forbid = false, bool unforbid = false) + { + if (pawn.MapHeld == null) + { + Log.Error("Tried to drop a thing near pawn but the pawn is unspawned. pawn=" + pawn); + return; + } + tmpThingList.Clear(); + tmpThingList.AddRange(innerContainer); + int num = 0; + for (int i = 0; i < tmpThingList.Count; i++) + { + Thing thing = tmpThingList[i]; + if (thing.def != def) + { + continue; + } + int num2 = Math.Min(thing.stackCount, count); + innerContainer.TryDrop(tmpThingList[i], pawn.Position, pawn.MapHeld, ThingPlaceMode.Near, num2, out var _, delegate(Thing t, int unused) + { + if (forbid) + { + t.SetForbiddenIfOutsideHomeArea(); + } + if (unforbid) + { + t.SetForbidden(value: false, warnOnFail: false); + } + if (t.def.IsPleasureDrug) + { + LessonAutoActivator.TeachOpportunity(ConceptDefOf.DrugBurning, OpportunityType.Important); + } + }); + num += num2; + if (num >= count) + { + break; + } + } + } + + public void RemoveCount(ThingDef def, int count, bool destroy = true) + { + tmpThingList.Clear(); + tmpThingList.AddRange(innerContainer); + foreach (Thing tmpThing in tmpThingList) + { + if (tmpThing.def != def) + { + continue; + } + if (tmpThing.stackCount > count) + { + tmpThing.stackCount -= count; + break; + } + innerContainer.Remove(tmpThing); + if (destroy) + { + tmpThing.Destroy(); + } + break; + } + } + + public void DestroyAll(DestroyMode mode = DestroyMode.Vanish) + { + innerContainer.ClearAndDestroyContents(mode); + } + + public bool Contains(Thing item) + { + return innerContainer.Contains(item); + } + + public int Count(ThingDef def) + { + int num = 0; + foreach (Thing item in innerContainer) + { + if (item.def == def) + { + num += item.stackCount; + } + } + return num; + } + + public int Count(Func validator) + { + int num = 0; + foreach (Thing item in innerContainer) + { + if (validator(item)) + { + num += item.stackCount; + } + } + return num; + } + + public void AddHauledCaravanItem(Thing item) + { + if (pawn.carryTracker.innerContainer.TryTransferToContainer(item, innerContainer, item.stackCount, out var resultingTransferredItem, canMergeWithExistingStacks: false) > 0) + { + unpackedCaravanItems.Add(resultingTransferredItem); + } + CompForbiddable compForbiddable = resultingTransferredItem?.TryGetComp(); + if (compForbiddable != null) + { + compForbiddable.Forbidden = false; + } + } + + public void TryAddAndUnforbid(Thing item) + { + CompForbiddable compForbiddable = item.TryGetComp(); + if (innerContainer.TryAdd(item) && compForbiddable != null) + { + compForbiddable.Forbidden = false; + } + } + + public void TransferCaravanItemsToCarrier(Pawn_InventoryTracker carrierInventory) + { + List list = new List(); + list.AddRange(pawn.inventory.unpackedCaravanItems); + foreach (Thing item in list) + { + if (MassUtility.IsOverEncumbered(carrierInventory.pawn)) + { + break; + } + if (innerContainer.Contains(item)) + { + pawn.inventory.innerContainer.TryTransferToContainer(item, carrierInventory.innerContainer, item.stackCount); + } + unpackedCaravanItems.Remove(item); + } + } + + public void DropAllPackingCaravanThings() + { + if (pawn.Spawned) + { + DropAllNearPawnHelper(pawn.Position, forbid: false, unforbid: false, caravanHaulOnly: true); + ClearHaulingCaravanCache(); + } + } + + public void ClearHaulingCaravanCache() + { + unpackedCaravanItems.Clear(); + } + + public bool NotForSale(Thing item) + { + return itemsNotForSale.Contains(item); + } + + public void TryAddItemNotForSale(Thing item) + { + if (innerContainer.TryAdd(item, canMergeWithExistingStacks: false)) + { + itemsNotForSale.Add(item); + } + } + + public void Notify_ItemRemoved(Thing item) + { + itemsNotForSale.Remove(item); + unpackedCaravanItems.Remove(item); + if (unloadEverything && !HasAnyUnloadableThing) + { + unloadEverything = false; + } + } + + public ThingOwner GetDirectlyHeldThings() + { + return innerContainer; + } + + public void GetChildHolders(List outChildren) + { + ThingOwnerUtility.AppendThingHoldersFromThings(outChildren, GetDirectlyHeldThings()); + } + + public IEnumerable GetDrugs() + { + foreach (Thing item in innerContainer) + { + if (item.TryGetComp() != null) + { + yield return item; + } + } + } + + public IEnumerable GetCombatEnhancingDrugs() + { + foreach (Thing item in innerContainer) + { + CompDrug compDrug = item.TryGetComp(); + if (compDrug != null && compDrug.Props.isCombatEnhancingDrug) + { + yield return item; + } + } + } + + public Thing FindCombatEnhancingDrug() + { + return GetCombatEnhancingDrugs().FirstOrDefault(); + } + + public IEnumerable GetGizmos() + { + if (!pawn.IsColonistPlayerControlled || !pawn.Drafted || Find.Selector.SingleSelectedThing != pawn) + { + yield break; + } + usableDrugsTmp.Clear(); + foreach (Thing drug2 in GetDrugs()) + { + if (FoodUtility.WillIngestFromInventoryNow(pawn, drug2)) + { + usableDrugsTmp.Add(drug2); + } + } + if (usableDrugsTmp.Count == 0) + { + yield break; + } + if (usableDrugsTmp.Count == 1) + { + Thing drug = usableDrugsTmp[0]; + string defaultLabel = (drug.def.ingestible.ingestCommandString.NullOrEmpty() ? "ConsumeThing".Translate(drug.LabelNoCount, drug) : drug.def.ingestible.ingestCommandString.Formatted(drug.LabelShort)); + Command_Action command_Action = new Command_Action(); + command_Action.defaultLabel = defaultLabel; + command_Action.defaultDesc = drug.LabelCapNoCount + ": " + drug.def.description.CapitalizeFirst(); + command_Action.icon = drug.def.uiIcon; + command_Action.iconAngle = drug.def.uiIconAngle; + command_Action.iconOffset = drug.def.uiIconOffset; + command_Action.action = delegate + { + FoodUtility.IngestFromInventoryNow(pawn, drug); + }; + yield return command_Action; + yield break; + } + Command_Action command_Action2 = new Command_Action(); + command_Action2.defaultLabel = "TakeDrug".Translate(); + command_Action2.defaultDesc = "TakeDrugDesc".Translate(); + command_Action2.icon = DrugTex; + command_Action2.action = delegate + { + List list = new List(); + foreach (Thing drug in usableDrugsTmp) + { + string label = (drug.def.ingestible.ingestCommandString.NullOrEmpty() ? "ConsumeThing".Translate(drug.LabelNoCount, drug) : drug.def.ingestible.ingestCommandString.Formatted(drug.LabelShort)); + list.Add(new FloatMenuOption(label, delegate + { + FoodUtility.IngestFromInventoryNow(pawn, drug); + })); + } + Find.WindowStack.Add(new FloatMenu(list)); + }; + yield return command_Action2; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\ThingOwnerUtility.txt` +**相似度:** 0.6304 + +```csharp +public static class ThingOwnerUtility +{ + private static readonly Stack tmpStack = new Stack(); + + private static readonly List tmpHolders = new List(); + + private static readonly List tmpThings = new List(); + + private static readonly List tmpMapChildHolders = new List(); + + public static bool ThisOrAnyCompIsThingHolder(this ThingDef thingDef) + { + if (typeof(IThingHolder).IsAssignableFrom(thingDef.thingClass)) + { + return true; + } + for (int i = 0; i < thingDef.comps.Count; i++) + { + if (typeof(IThingHolder).IsAssignableFrom(thingDef.comps[i].compClass)) + { + return true; + } + } + return false; + } + + public static ThingOwner TryGetInnerInteractableThingOwner(this Thing thing) + { + IThingHolder thingHolder = thing as IThingHolder; + ThingWithComps thingWithComps = thing as ThingWithComps; + if (thingHolder != null) + { + ThingOwner directlyHeldThings = thingHolder.GetDirectlyHeldThings(); + if (directlyHeldThings != null) + { + return directlyHeldThings; + } + } + if (thingWithComps != null) + { + List allComps = thingWithComps.AllComps; + for (int i = 0; i < allComps.Count; i++) + { + if (allComps[i] is IThingHolder thingHolder2) + { + ThingOwner directlyHeldThings2 = thingHolder2.GetDirectlyHeldThings(); + if (directlyHeldThings2 != null) + { + return directlyHeldThings2; + } + } + } + } + tmpHolders.Clear(); + if (thingHolder != null) + { + thingHolder.GetChildHolders(tmpHolders); + if (tmpHolders.Any()) + { + ThingOwner directlyHeldThings3 = tmpHolders[0].GetDirectlyHeldThings(); + if (directlyHeldThings3 != null) + { + tmpHolders.Clear(); + return directlyHeldThings3; + } + } + } + if (thingWithComps != null) + { + List allComps2 = thingWithComps.AllComps; + for (int j = 0; j < allComps2.Count; j++) + { + if (!(allComps2[j] is IThingHolder thingHolder3)) + { + continue; + } + thingHolder3.GetChildHolders(tmpHolders); + if (tmpHolders.Any()) + { + ThingOwner directlyHeldThings4 = tmpHolders[0].GetDirectlyHeldThings(); + if (directlyHeldThings4 != null) + { + tmpHolders.Clear(); + return directlyHeldThings4; + } + } + } + } + tmpHolders.Clear(); + return null; + } + + public static bool SpawnedOrAnyParentSpawned(IThingHolder holder) + { + return SpawnedParentOrMe(holder) != null; + } + + public static Thing SpawnedParentOrMe(IThingHolder holder) + { + while (holder != null) + { + if (holder is Thing { Spawned: not false } thing) + { + return thing; + } + if (holder is ThingComp thingComp && thingComp.parent.Spawned) + { + return thingComp.parent; + } + holder = holder.ParentHolder; + } + return null; + } + + public static IntVec3 GetRootPosition(IThingHolder holder) + { + IntVec3 result = IntVec3.Invalid; + while (holder != null) + { + if (holder is Thing { Position: { IsValid: not false } } thing) + { + result = thing.Position; + } + else if (holder is ThingComp thingComp && thingComp.parent.Position.IsValid) + { + result = thingComp.parent.Position; + } + holder = holder.ParentHolder; + } + return result; + } + + public static Map GetRootMap(IThingHolder holder) + { + while (holder != null) + { + if (holder is Map result) + { + return result; + } + holder = holder.ParentHolder; + } + return null; + } + + public static PlanetTile GetRootTile(IThingHolder holder) + { + while (holder != null) + { + if (holder is WorldObject { Tile: { Valid: not false } } worldObject) + { + return worldObject.Tile; + } + holder = holder.ParentHolder; + } + return PlanetTile.Invalid; + } + + public static bool ContentsSuspended(IThingHolder holder) + { + while (holder != null) + { + if (holder is Building_CryptosleepCasket || holder is ISuspendableThingHolder { IsContentsSuspended: not false }) + { + return true; + } + holder = holder.ParentHolder; + } + return false; + } + + public static bool ContentsInCryptosleep(IThingHolder holder) + { + while (holder != null) + { + if (holder is Building_CryptosleepCasket) + { + return true; + } + holder = holder.ParentHolder; + } + return false; + } + + public static bool IsEnclosingContainer(this IThingHolder holder) + { + if (holder != null && !(holder is Pawn_CarryTracker) && !(holder is Corpse) && !(holder is Map) && !(holder is Caravan) && !(holder is Settlement_TraderTracker)) + { + return !(holder is TradeShip); + } + return false; + } + + public static bool ShouldAutoRemoveDestroyedThings(IThingHolder holder) + { + if (!(holder is Corpse)) + { + return !(holder is Caravan); + } + return false; + } + + public static bool ShouldAutoExtinguishInnerThings(IThingHolder holder) + { + return !(holder is Map); + } + + public static bool ShouldRemoveDesignationsOnAddedThings(IThingHolder holder) + { + return holder.IsEnclosingContainer(); + } + + public static void AppendThingHoldersFromThings(List outThingsHolders, IList container) + { + if (container == null) + { + return; + } + int i = 0; + for (int count = container.Count; i < count; i++) + { + if (container[i] is IThingHolder item) + { + outThingsHolders.Add(item); + } + if (!(container[i] is ThingWithComps { AllComps: var allComps })) + { + continue; + } + for (int j = 0; j < allComps.Count; j++) + { + if (allComps[j] is IThingHolder item2) + { + outThingsHolders.Add(item2); + } + } + } + } + + public static bool AnyParentIs(Thing thing) where T : class, IThingHolder + { + return GetAnyParent(thing) != null; + } + + public static T GetAnyParent(Thing thing) where T : class, IThingHolder + { + if (thing is T result) + { + return result; + } + for (IThingHolder parentHolder = thing.ParentHolder; parentHolder != null; parentHolder = parentHolder.ParentHolder) + { + if (parentHolder is T result2) + { + return result2; + } + } + return null; + } + + public static Thing GetFirstParentThing(Thing thing) + { + for (IThingHolder parentHolder = thing.ParentHolder; parentHolder != null; parentHolder = parentHolder.ParentHolder) + { + if (parentHolder is Thing result) + { + return result; + } + if (parentHolder is ThingComp thingComp) + { + return thingComp.parent; + } + } + return null; + } + + public static Thing GetFirstSpawnedParentThing(Thing thing) + { + if (thing.Spawned) + { + return thing; + } + for (IThingHolder parentHolder = thing.ParentHolder; parentHolder != null; parentHolder = parentHolder.ParentHolder) + { + if (parentHolder is Thing { Spawned: not false } thing2) + { + return thing2; + } + if (parentHolder is ThingComp thingComp && thingComp.parent.Spawned) + { + return thingComp.parent; + } + } + return null; + } + + public static void GetAllThingsRecursively(IThingHolder holder, List outThings, bool allowUnreal = true, Predicate passCheck = null) + { + outThings.Clear(); + if (passCheck != null && !passCheck(holder)) + { + return; + } + tmpStack.Clear(); + tmpStack.Push(holder); + while (tmpStack.Count != 0) + { + IThingHolder thingHolder = tmpStack.Pop(); + if (allowUnreal || AreImmediateContentsReal(thingHolder)) + { + ThingOwner directlyHeldThings = thingHolder.GetDirectlyHeldThings(); + if (directlyHeldThings != null) + { + outThings.AddRange(directlyHeldThings); + } + } + tmpHolders.Clear(); + thingHolder.GetChildHolders(tmpHolders); + for (int i = 0; i < tmpHolders.Count; i++) + { + if (passCheck == null || passCheck(tmpHolders[i])) + { + tmpStack.Push(tmpHolders[i]); + } + } + } + tmpStack.Clear(); + tmpHolders.Clear(); + } + + public static void GetAllThingsRecursively(Map map, ThingRequest request, List outThings, bool allowUnreal = true, Predicate passCheck = null, bool alsoGetSpawnedThings = true) where T : Thing + { + outThings.Clear(); + if (alsoGetSpawnedThings) + { + List list = map.listerThings.ThingsMatching(request); + for (int i = 0; i < list.Count; i++) + { + if (list[i] is T item) + { + outThings.Add(item); + } + } + } + tmpMapChildHolders.Clear(); + map.GetChildHolders(tmpMapChildHolders); + for (int j = 0; j < tmpMapChildHolders.Count; j++) + { + tmpThings.Clear(); + GetAllThingsRecursively(tmpMapChildHolders[j], tmpThings, allowUnreal, passCheck); + for (int k = 0; k < tmpThings.Count; k++) + { + if (tmpThings[k] is T val && request.Accepts(val)) + { + outThings.Add(val); + } + } + } + tmpThings.Clear(); + tmpMapChildHolders.Clear(); + } + + public static List GetAllThingsRecursively(IThingHolder holder, bool allowUnreal = true) + { + List list = new List(); + GetAllThingsRecursively(holder, list, allowUnreal); + return list; + } + + public static bool AreImmediateContentsReal(IThingHolder holder) + { + if (!(holder is Corpse)) + { + return !(holder is MinifiedThing); + } + return false; + } + + public static bool TryGetFixedTemperature(IThingHolder holder, Thing forThing, out float temperature) + { + if (holder is Pawn_InventoryTracker && forThing.TryGetComp() != null) + { + temperature = 14f; + return true; + } + if (holder is CompLaunchable || holder is ActiveTransporterInfo || holder is TravellingTransporters) + { + temperature = 14f; + return true; + } + if (holder is Settlement_TraderTracker || holder is TradeShip) + { + temperature = 14f; + return true; + } + if (holder is CompTransporter) + { + temperature = 14f; + return true; + } + temperature = 21f; + return false; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld.Planet\CaravanInventoryUtility.txt` +**相似度:** 0.6279 + +```csharp +public static class CaravanInventoryUtility +{ + private static List inventoryItems = new List(); + + private static List inventoryToMove = new List(); + + private static List tmpApparel = new List(); + + private static List tmpEquipment = new List(); + + public static List AllInventoryItems(Caravan caravan) + { + inventoryItems.Clear(); + List pawnsListForReading = caravan.PawnsListForReading; + for (int i = 0; i < pawnsListForReading.Count; i++) + { + Pawn pawn = pawnsListForReading[i]; + for (int num = pawn.inventory.innerContainer.Count - 1; num >= 0; num--) + { + Thing item = pawn.inventory.innerContainer[num]; + inventoryItems.Add(item); + } + } + return inventoryItems; + } + + public static Building_PassengerShuttle FindShuttle(Caravan caravan) + { + List list = AllInventoryItems(caravan); + for (int i = 0; i < list.Count; i++) + { + if (list[i] is Building_PassengerShuttle result) + { + return result; + } + } + return null; + } + + public static void CaravanInventoryUtilityStaticUpdate() + { + inventoryItems.Clear(); + } + + public static Pawn GetOwnerOf(Caravan caravan, Thing item) + { + IThingHolder parentHolder = item.ParentHolder; + if (parentHolder is Pawn_InventoryTracker) + { + Pawn pawn = (Pawn)parentHolder.ParentHolder; + if (caravan.ContainsPawn(pawn)) + { + return pawn; + } + } + return null; + } + + public static bool TryGetBestFood(Caravan caravan, Pawn forPawn, out Thing food, out Pawn owner) + { + List list = AllInventoryItems(caravan); + Thing thing = null; + float num = 0f; + for (int i = 0; i < list.Count; i++) + { + Thing thing2 = list[i]; + if (CaravanPawnsNeedsUtility.CanEatForNutritionNow(thing2, forPawn)) + { + float foodScore = CaravanPawnsNeedsUtility.GetFoodScore(thing2, forPawn); + if (thing == null || foodScore > num) + { + thing = thing2; + num = foodScore; + } + } + } + if (thing != null) + { + food = thing; + owner = GetOwnerOf(caravan, thing); + return true; + } + food = null; + owner = null; + return false; + } + + public static bool TryGetDrugToSatisfyChemicalNeed(Caravan caravan, Pawn forPawn, Hediff hediff, out Thing drug, out Pawn owner) + { + if (hediff == null) + { + drug = null; + owner = null; + return false; + } + List list = AllInventoryItems(caravan); + Thing thing = null; + for (int i = 0; i < list.Count; i++) + { + Thing thing2 = list[i]; + if (!thing2.IngestibleNow || !thing2.def.IsDrug) + { + continue; + } + CompDrug compDrug = thing2.TryGetComp(); + if (compDrug != null && compDrug.Props.chemical != null && (!(hediff is Hediff_ChemicalDependency hediff_ChemicalDependency) || compDrug.Props.chemical == hediff_ChemicalDependency.chemical) && (!(hediff is Hediff_Addiction hediff_Addiction) || compDrug.Props.chemical.addictionHediff == hediff_Addiction.def)) + { + DrugPolicy drugPolicy = forPawn.drugs?.CurrentPolicy; + if (drugPolicy == null || drugPolicy[thing2.def].allowedForAddiction || forPawn.story == null || forPawn.story.traits.DegreeOfTrait(TraitDefOf.DrugDesire) > 0) + { + thing = thing2; + break; + } + } + } + if (thing != null) + { + drug = thing; + owner = GetOwnerOf(caravan, thing); + return true; + } + drug = null; + owner = null; + return false; + } + + public static bool TryGetBestMedicine(Caravan caravan, Pawn patient, out Medicine medicine, out Pawn owner) + { + if (patient.playerSettings == null || (int)patient.playerSettings.medCare <= 1) + { + medicine = null; + owner = null; + return false; + } + List list = AllInventoryItems(caravan); + Medicine medicine2 = null; + float num = 0f; + for (int i = 0; i < list.Count; i++) + { + Thing thing = list[i]; + if (thing.def.IsMedicine && patient.playerSettings.medCare.AllowsMedicine(thing.def)) + { + float statValue = thing.GetStatValue(StatDefOf.MedicalPotency); + if (statValue > num || medicine2 == null) + { + num = statValue; + medicine2 = (Medicine)thing; + } + } + } + if (medicine2 != null) + { + medicine = medicine2; + owner = GetOwnerOf(caravan, medicine2); + return true; + } + medicine = null; + owner = null; + return false; + } + + public static bool TryGetThingOfDef(Caravan caravan, ThingDef thingDef, out Thing thing, out Pawn owner) + { + List list = AllInventoryItems(caravan); + for (int i = 0; i < list.Count; i++) + { + Thing thing2 = list[i]; + if (thing2.def == thingDef) + { + thing = thing2; + owner = GetOwnerOf(caravan, thing2); + return true; + } + } + thing = null; + owner = null; + return false; + } + + public static void MoveAllInventoryToSomeoneElse(Pawn from, List candidates, List ignoreCandidates = null) + { + inventoryToMove.Clear(); + inventoryToMove.AddRange(from.inventory.innerContainer); + for (int i = 0; i < inventoryToMove.Count; i++) + { + MoveInventoryToSomeoneElse(from, inventoryToMove[i], candidates, ignoreCandidates, inventoryToMove[i].stackCount); + } + inventoryToMove.Clear(); + } + + public static void MoveInventoryToSomeoneElse(Pawn itemOwner, Thing item, List candidates, List ignoreCandidates, int numToMove) + { + if (numToMove < 0 || numToMove > item.stackCount) + { + Log.Warning("Tried to move item " + item?.ToString() + " with numToMove=" + numToMove + " (item stack count = " + item.stackCount + ")"); + } + else + { + Pawn pawn = FindPawnToMoveInventoryTo(item, candidates, ignoreCandidates, itemOwner); + if (pawn != null) + { + itemOwner.inventory.innerContainer.TryTransferToContainer(item, pawn.inventory.innerContainer, numToMove); + } + } + } + + public static Pawn FindPawnToMoveInventoryTo(Thing item, List candidates, List ignoreCandidates, Pawn currentItemOwner = null) + { + if (item is Pawn) + { + Log.Error("Called FindPawnToMoveInventoryTo but the item is a pawn."); + return null; + } + if (candidates.Where((Pawn x) => CanMoveInventoryTo(x) && (ignoreCandidates == null || !ignoreCandidates.Contains(x)) && x != currentItemOwner && !MassUtility.IsOverEncumbered(x)).TryRandomElement(out var result)) + { + return result; + } + if (candidates.Where((Pawn x) => CanMoveInventoryTo(x) && (ignoreCandidates == null || !ignoreCandidates.Contains(x)) && x != currentItemOwner).TryRandomElement(out result)) + { + return result; + } + if (candidates.Where((Pawn x) => (ignoreCandidates == null || !ignoreCandidates.Contains(x)) && x != currentItemOwner).TryRandomElement(out result)) + { + return result; + } + return null; + } + + public static void MoveAllApparelToSomeonesInventory(Pawn moveFrom, List candidates, bool moveLocked = true) + { + if (moveFrom.apparel == null) + { + return; + } + tmpApparel.Clear(); + if (moveLocked) + { + tmpApparel.AddRange(moveFrom.apparel.WornApparel); + } + else + { + for (int i = 0; i < moveFrom.apparel.WornApparel.Count; i++) + { + Apparel apparel = moveFrom.apparel.WornApparel[i]; + if (!moveFrom.apparel.IsLocked(apparel)) + { + tmpApparel.Add(apparel); + } + } + } + for (int j = 0; j < tmpApparel.Count; j++) + { + moveFrom.apparel.Remove(tmpApparel[j]); + FindPawnToMoveInventoryTo(tmpApparel[j], candidates, null, moveFrom)?.inventory.innerContainer.TryAdd(tmpApparel[j]); + } + tmpApparel.Clear(); + } + + public static void MoveAllEquipmentToSomeonesInventory(Pawn moveFrom, List candidates) + { + if (moveFrom.equipment != null) + { + tmpEquipment.Clear(); + tmpEquipment.AddRange(moveFrom.equipment.AllEquipmentListForReading); + for (int i = 0; i < tmpEquipment.Count; i++) + { + moveFrom.equipment.Remove(tmpEquipment[i]); + FindPawnToMoveInventoryTo(tmpEquipment[i], candidates, null, moveFrom)?.inventory.innerContainer.TryAdd(tmpEquipment[i]); + } + tmpEquipment.Clear(); + } + } + + private static bool CanMoveInventoryTo(Pawn pawn) + { + return MassUtility.CanEverCarryAnything(pawn); + } + + public static List TakeThings(Caravan caravan, Func takeQuantity) + { + List list = new List(); + foreach (Thing item in AllInventoryItems(caravan).ToList()) + { + int num = takeQuantity(item); + if (num > 0) + { + list.Add(item.holdingOwner.Take(item, num)); + } + } + return list; + } + + public static void GiveThing(Caravan caravan, Thing thing) + { + if (AllInventoryItems(caravan).Contains(thing)) + { + Log.Error("Tried to give the same item twice (" + thing?.ToString() + ") to a caravan (" + caravan?.ToString() + ")."); + return; + } + Pawn pawn = FindPawnToMoveInventoryTo(thing, caravan.PawnsListForReading, null); + if (pawn == null) + { + Log.Error($"Failed to give item {thing} to caravan {caravan}; item was lost"); + thing.Destroy(); + } + else if (!pawn.inventory.innerContainer.TryAdd(thing)) + { + Log.Error($"Failed to give item {thing} to caravan {caravan}; item was lost"); + thing.Destroy(); + } + } + + public static bool HasThings(Caravan caravan, ThingDef thingDef, int count, Func validator = null) + { + int num = 0; + List list = AllInventoryItems(caravan); + for (int i = 0; i < list.Count; i++) + { + Thing thing = list[i]; + if (thing.def == thingDef && (validator == null || validator(thing))) + { + num += thing.stackCount; + } + } + return num >= count; + } + + public static IEnumerable GetAllDissolvingThings(Caravan caravan) + { + ThingRequest group = ThingRequest.ForGroup(ThingRequestGroup.Dissolving); + List items = AllInventoryItems(caravan); + for (int i = 0; i < items.Count; i++) + { + if (group.Accepts(items[i])) + { + yield return items[i]; + } + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\ThingOwner.txt` +**相似度:** 0.6188 + +```csharp +public abstract class ThingOwner : IExposable, IList, ICollection, IEnumerable, IEnumerable +{ + protected IThingHolder owner; + + protected int maxStacks = 999999; + + public LookMode contentsLookMode = LookMode.Deep; + + public bool removeContentsIfDestroyed = true; + + private const int InfMaxStacks = 999999; + + public IThingHolder Owner => owner; + + public abstract int Count { get; } + + public Thing this[int index] => GetAt(index); + + public bool Any => Count > 0; + + public int TotalStackCount + { + get + { + int num = 0; + int count = Count; + for (int i = 0; i < count; i++) + { + num += GetAt(i).stackCount; + } + return num; + } + } + + public string ContentsString + { + get + { + if (Any) + { + return GenThing.ThingsToCommaList(this); + } + return "NothingLower".Translate(); + } + } + + Thing IList.this[int index] + { + get + { + return GetAt(index); + } + set + { + throw new InvalidOperationException("ThingOwner doesn't allow setting individual elements."); + } + } + + bool ICollection.IsReadOnly => true; + + public event Action OnContentsChanged; + + public ThingOwner() + { + } + + public ThingOwner(IThingHolder owner) + { + this.owner = owner; + } + + public ThingOwner(IThingHolder owner, LookMode contentsLookMode = LookMode.Deep, bool removeContentsIfDestroyed = true) + { + this.owner = owner; + this.contentsLookMode = contentsLookMode; + this.removeContentsIfDestroyed = removeContentsIfDestroyed; + } + + public ThingOwner(IThingHolder owner, bool oneStackOnly, LookMode contentsLookMode = LookMode.Deep, bool removeContentsIfDestroyed = true) + : this(owner) + { + maxStacks = (oneStackOnly ? 1 : 999999); + this.contentsLookMode = contentsLookMode; + this.removeContentsIfDestroyed = removeContentsIfDestroyed; + } + + public virtual void ExposeData() + { + Scribe_Values.Look(ref maxStacks, "maxStacks", 999999); + Scribe_Values.Look(ref contentsLookMode, "contentsLookMode", LookMode.Deep); + Scribe_Values.Look(ref removeContentsIfDestroyed, "removeContentsIfDestroyed", defaultValue: true); + } + + public void DoTick() + { + for (int num = Count - 1; num >= 0; num--) + { + Thing at = GetAt(num); + int offset = ((owner is Thing t) ? t.HashOffset() : 0); + at.DoTick(); + if (at.def.tickerType == TickerType.Rare && GenTicks.IsTickInterval(offset, 250)) + { + at.TickRare(); + } + else if (at.def.tickerType == TickerType.Long && GenTicks.IsTickInterval(offset, 2000)) + { + at.TickLong(); + } + if (at.Destroyed && removeContentsIfDestroyed) + { + Remove(at); + } + } + } + + public void Clear() + { + for (int num = Count - 1; num >= 0; num--) + { + Remove(GetAt(num)); + } + } + + public void ClearAndDestroyContents(DestroyMode mode = DestroyMode.Vanish) + { + while (Any) + { + for (int num = Count - 1; num >= 0; num--) + { + Thing at = GetAt(num); + at.Destroy(mode); + Remove(at); + } + } + } + + public void ClearAndDestroyContentsOrPassToWorld(DestroyMode mode = DestroyMode.Vanish) + { + while (Any) + { + for (int num = Count - 1; num >= 0; num--) + { + Thing at = GetAt(num); + at.DestroyOrPassToWorld(mode); + Remove(at); + } + } + } + + public bool CanAcceptAnyOf(Thing item, bool canMergeWithExistingStacks = true) + { + return GetCountCanAccept(item, canMergeWithExistingStacks) > 0; + } + + public virtual int GetCountCanAccept(Thing item, bool canMergeWithExistingStacks = true) + { + if (item == null || item.stackCount <= 0) + { + return 0; + } + if (maxStacks == 999999) + { + return item.stackCount; + } + int num = 0; + if (Count < maxStacks) + { + num += (maxStacks - Count) * item.def.stackLimit; + } + if (num >= item.stackCount) + { + return Mathf.Min(num, item.stackCount); + } + if (canMergeWithExistingStacks) + { + int i = 0; + for (int count = Count; i < count; i++) + { + Thing at = GetAt(i); + if (at.stackCount < at.def.stackLimit && at.CanStackWith(item)) + { + num += at.def.stackLimit - at.stackCount; + if (num >= item.stackCount) + { + return Mathf.Min(num, item.stackCount); + } + } + } + } + return Mathf.Min(num, item.stackCount); + } + + public abstract int TryAdd(Thing item, int count, bool canMergeWithExistingStacks = true); + + public abstract bool TryAdd(Thing item, bool canMergeWithExistingStacks = true); + + public abstract int IndexOf(Thing item); + + public abstract bool Remove(Thing item); + + protected abstract Thing GetAt(int index); + + public bool Contains(Thing item) + { + if (item == null) + { + return false; + } + return item.holdingOwner == this; + } + + public void RemoveAt(int index) + { + if (index < 0 || index >= Count) + { + throw new ArgumentOutOfRangeException("index"); + } + Remove(GetAt(index)); + } + + public int TryAddOrTransfer(Thing item, int count, bool canMergeWithExistingStacks = true) + { + if (item == null) + { + Log.Warning("Tried to add or transfer null item to ThingOwner."); + return 0; + } + if (item.holdingOwner != null) + { + return item.holdingOwner.TryTransferToContainer(item, this, count, canMergeWithExistingStacks); + } + return TryAdd(item, count, canMergeWithExistingStacks); + } + + public bool TryAddOrTransfer(Thing item, bool canMergeWithExistingStacks = true) + { + if (item == null) + { + Log.Warning("Tried to add or transfer null item to ThingOwner."); + return false; + } + if (item.holdingOwner != null) + { + return item.holdingOwner.TryTransferToContainer(item, this, canMergeWithExistingStacks); + } + return TryAdd(item, canMergeWithExistingStacks); + } + + public void TryAddRangeOrTransfer(IEnumerable things, bool canMergeWithExistingStacks = true, bool destroyLeftover = false) + { + if (things == this) + { + return; + } + if (things is ThingOwner thingOwner) + { + thingOwner.TryTransferAllToContainer(this, canMergeWithExistingStacks); + if (destroyLeftover) + { + thingOwner.ClearAndDestroyContents(); + } + return; + } + if (things is IList list) + { + for (int i = 0; i < list.Count; i++) + { + if (!TryAddOrTransfer(list[i], canMergeWithExistingStacks) && destroyLeftover) + { + list[i].Destroy(); + } + } + return; + } + foreach (Thing thing in things) + { + if (!TryAddOrTransfer(thing, canMergeWithExistingStacks) && destroyLeftover) + { + thing.Destroy(); + } + } + } + + public int RemoveAll(Predicate predicate) + { + int num = 0; + for (int num2 = Count - 1; num2 >= 0; num2--) + { + if (predicate(GetAt(num2))) + { + Remove(GetAt(num2)); + num++; + } + } + return num; + } + + public bool TryTransferToContainer(Thing item, ThingOwner otherContainer, bool canMergeWithExistingStacks = true) + { + return TryTransferToContainer(item, otherContainer, item.stackCount, canMergeWithExistingStacks) == item.stackCount; + } + + public int TryTransferToContainer(Thing item, ThingOwner otherContainer, int count, bool canMergeWithExistingStacks = true) + { + Thing resultingTransferredItem; + return TryTransferToContainer(item, otherContainer, count, out resultingTransferredItem, canMergeWithExistingStacks); + } + + public int TryTransferToContainer(Thing item, ThingOwner otherContainer, int count, out Thing resultingTransferredItem, bool canMergeWithExistingStacks = true) + { + if (!Contains(item)) + { + Log.Error("Can't transfer item " + item?.ToString() + " because it's not here. owner=" + owner.ToStringSafe()); + resultingTransferredItem = null; + return 0; + } + if (otherContainer == this && count > 0) + { + resultingTransferredItem = item; + return item.stackCount; + } + if (!otherContainer.CanAcceptAnyOf(item, canMergeWithExistingStacks)) + { + resultingTransferredItem = null; + return 0; + } + if (count <= 0) + { + resultingTransferredItem = null; + return 0; + } + if (owner is Map || otherContainer.owner is Map) + { + Log.Warning("Can't transfer items to or from Maps directly. They must be spawned or despawned manually. Use TryAdd(item.SplitOff(count))"); + resultingTransferredItem = null; + return 0; + } + int num = Mathf.Min(item.stackCount, count); + Thing thing = item.SplitOff(num); + if (Contains(thing)) + { + Remove(thing); + } + if (otherContainer.TryAdd(thing, canMergeWithExistingStacks)) + { + resultingTransferredItem = thing; + item.MapHeld?.resourceCounter?.CheckUpdateResource(thing); + return thing.stackCount; + } + resultingTransferredItem = null; + if (!otherContainer.Contains(thing) && thing.stackCount > 0 && !thing.Destroyed) + { + int result = num - thing.stackCount; + if (item != thing) + { + item.TryAbsorbStack(thing, respectStackLimit: false); + } + else + { + TryAdd(thing, canMergeWithExistingStacks: false); + } + Map mapHeld = item.MapHeld; + if (mapHeld != null) + { + ResourceCounter resourceCounter = mapHeld.resourceCounter; + if (resourceCounter != null) + { + resourceCounter.CheckUpdateResource(thing); + return result; + } + return result; + } + return result; + } + return thing.stackCount; + } + + public void TryTransferAllToContainer(ThingOwner other, bool canMergeWithExistingStacks = true) + { + for (int num = Count - 1; num >= 0; num--) + { + TryTransferToContainer(GetAt(num), other, canMergeWithExistingStacks); + } + } + + public Thing Take(Thing thing, int count) + { + if (!Contains(thing)) + { + Log.Error("Tried to take " + thing.ToStringSafe() + " but it's not here."); + return null; + } + if (count > thing.stackCount) + { + Log.Error("Tried to get " + count + " of " + thing.ToStringSafe() + " while only having " + thing.stackCount); + count = thing.stackCount; + } + if (count == thing.stackCount) + { + Remove(thing); + return thing; + } + Thing thing2 = thing.SplitOff(count); + thing2.holdingOwner = null; + return thing2; + } + + public Thing Take(Thing thing) + { + return Take(thing, thing.stackCount); + } + + public bool TryDrop(Thing thing, ThingPlaceMode mode, int count, out Thing lastResultingThing, Action placedAction = null, Predicate nearPlaceValidator = null) + { + Map rootMap = ThingOwnerUtility.GetRootMap(owner); + IntVec3 rootPosition = ThingOwnerUtility.GetRootPosition(owner); + if (rootMap == null || !rootPosition.IsValid) + { + Log.Error("Cannot drop " + thing?.ToString() + " without a dropLoc and with an owner whose map is null."); + lastResultingThing = null; + return false; + } + return TryDrop(thing, rootPosition, rootMap, mode, count, out lastResultingThing, placedAction, nearPlaceValidator); + } + + public bool TryDrop(Thing thing, IntVec3 dropLoc, Map map, ThingPlaceMode mode, int count, out Thing resultingThing, Action placedAction = null, Predicate nearPlaceValidator = null) + { + if (!Contains(thing)) + { + Log.Error("Tried to drop " + thing.ToStringSafe() + " but it's not here."); + resultingThing = null; + return false; + } + if (thing.stackCount < count) + { + Log.Error("Tried to drop " + count + " of " + thing?.ToString() + " while only having " + thing.stackCount); + count = thing.stackCount; + } + if (count == thing.stackCount) + { + if (GenDrop.TryDropSpawn(thing, dropLoc, map, mode, out resultingThing, placedAction, nearPlaceValidator)) + { + Remove(thing); + return true; + } + return false; + } + Thing thing2 = thing.SplitOff(count); + if (GenDrop.TryDropSpawn(thing2, dropLoc, map, mode, out resultingThing, placedAction, nearPlaceValidator)) + { + return true; + } + thing.TryAbsorbStack(thing2, respectStackLimit: false); + return false; + } + + public bool TryDrop(Thing thing, ThingPlaceMode mode, out Thing lastResultingThing, Action placedAction = null, Predicate nearPlaceValidator = null) + { + Map rootMap = ThingOwnerUtility.GetRootMap(owner); + IntVec3 rootPosition = ThingOwnerUtility.GetRootPosition(owner); + if (rootMap == null || !rootPosition.IsValid) + { + Log.Error("Cannot drop " + thing?.ToString() + " without a dropLoc and with an owner whose map is null."); + lastResultingThing = null; + return false; + } + return TryDrop(thing, rootPosition, rootMap, mode, out lastResultingThing, placedAction, nearPlaceValidator); + } + + public bool TryDrop(Thing thing, IntVec3 dropLoc, Map map, ThingPlaceMode mode, out Thing lastResultingThing, Action placedAction = null, Predicate nearPlaceValidator = null, bool playDropSound = true) + { + if (!Contains(thing)) + { + Log.Error(owner.ToStringSafe() + " container tried to drop " + thing.ToStringSafe() + " which it didn't contain."); + lastResultingThing = null; + return false; + } + if (GenDrop.TryDropSpawn(thing, dropLoc, map, mode, out lastResultingThing, placedAction, nearPlaceValidator, playDropSound)) + { + Remove(thing); + return true; + } + return false; + } + + public bool TryDropAll(IntVec3 dropLoc, Map map, ThingPlaceMode mode, Action placeAction = null, Predicate nearPlaceValidator = null, bool playDropSound = true) + { + bool result = true; + for (int num = Count - 1; num >= 0; num--) + { + if (!TryDrop(GetAt(num), dropLoc, map, mode, out var _, placeAction, nearPlaceValidator, playDropSound)) + { + result = false; + } + } + return result; + } + + public bool Contains(ThingDef def) + { + return Contains(def, 1); + } + + public bool Contains(ThingDef def, int minCount) + { + if (minCount <= 0) + { + return true; + } + int num = 0; + int count = Count; + for (int i = 0; i < count; i++) + { + if (GetAt(i).def == def) + { + num += GetAt(i).stackCount; + } + if (num >= minCount) + { + return true; + } + } + return false; + } + + public int TotalStackCountOfDef(ThingDef def) + { + int num = 0; + int count = Count; + for (int i = 0; i < count; i++) + { + if (GetAt(i).def == def) + { + num += GetAt(i).stackCount; + } + } + return num; + } + + public void Notify_ContainedItemDestroyed(Thing t) + { + if (ThingOwnerUtility.ShouldAutoRemoveDestroyedThings(owner)) + { + Remove(t); + } + } + + protected virtual void NotifyAdded(Thing item) + { + if (ThingOwnerUtility.ShouldAutoExtinguishInnerThings(owner) && item.HasAttachment(ThingDefOf.Fire)) + { + item.GetAttachment(ThingDefOf.Fire).Destroy(); + } + if (ThingOwnerUtility.ShouldRemoveDesignationsOnAddedThings(owner)) + { + List maps = Find.Maps; + for (int i = 0; i < maps.Count; i++) + { + maps[i].designationManager.RemoveAllDesignationsOn(item); + } + } + if ((owner is Thing thing && thing.Faction.IsPlayerSafe()) || (owner is WorldObject worldObject && worldObject.Faction.IsPlayerSafe()) || (owner is Pawn_InventoryTracker pawn_InventoryTracker && pawn_InventoryTracker.pawn.Faction.IsPlayerSafe())) + { + item.EverSeenByPlayer = true; + } + if (owner is CompTransporter compTransporter) + { + compTransporter.Notify_ThingAdded(item); + } + if (owner is Caravan caravan) + { + caravan.Notify_PawnAdded((Pawn)item); + } + if (owner is Pawn_ApparelTracker pawn_ApparelTracker) + { + pawn_ApparelTracker.Notify_ApparelAdded((Apparel)item); + if (pawn_ApparelTracker.pawn.Faction.IsPlayerSafe()) + { + item.EverSeenByPlayer = true; + } + } + if (owner is Pawn_EquipmentTracker pawn_EquipmentTracker) + { + pawn_EquipmentTracker.Notify_EquipmentAdded((ThingWithComps)item); + if (pawn_EquipmentTracker.pawn.Faction.IsPlayerSafe()) + { + item.EverSeenByPlayer = true; + } + } + NotifyColonistBarIfColonistCorpse(item); + this.OnContentsChanged?.Invoke(); + } + + protected void NotifyAddedAndMergedWith(Thing item, int mergedCount) + { + if (owner is CompTransporter compTransporter) + { + compTransporter.Notify_ThingAddedAndMergedWith(item, mergedCount); + } + } + + protected virtual void NotifyRemoved(Thing item) + { + if (owner is Pawn_InventoryTracker pawn_InventoryTracker) + { + pawn_InventoryTracker.Notify_ItemRemoved(item); + } + if (owner is Pawn_ApparelTracker pawn_ApparelTracker) + { + pawn_ApparelTracker.Notify_ApparelRemoved((Apparel)item); + } + if (owner is Pawn_EquipmentTracker pawn_EquipmentTracker) + { + pawn_EquipmentTracker.Notify_EquipmentRemoved((ThingWithComps)item); + } + if (owner is Caravan caravan) + { + caravan.Notify_PawnRemoved((Pawn)item); + } + NotifyColonistBarIfColonistCorpse(item); + this.OnContentsChanged?.Invoke(); + } + + private void NotifyColonistBarIfColonistCorpse(Thing thing) + { + if (thing is Corpse { Bugged: false } corpse && corpse.InnerPawn.Faction != null && corpse.InnerPawn.Faction.IsPlayer && Current.ProgramState == ProgramState.Playing) + { + Find.ColonistBar.MarkColonistsDirty(); + } + } + + void IList.Insert(int index, Thing item) + { + throw new InvalidOperationException("ThingOwner doesn't allow inserting individual elements at any position."); + } + + void ICollection.Add(Thing item) + { + TryAdd(item); + } + + void ICollection.CopyTo(Thing[] array, int arrayIndex) + { + for (int i = 0; i < Count; i++) + { + array[i + arrayIndex] = GetAt(i); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + for (int i = 0; i < Count; i++) + { + yield return GetAt(i); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + for (int i = 0; i < Count; i++) + { + yield return GetAt(i); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\Toils_Haul.txt` +**相似度:** 0.6124 + +```csharp +public class Toils_Haul +{ + public static bool ErrorCheckForCarry(Pawn pawn, Thing haulThing, bool canTakeFromInventory = false) + { + if (!haulThing.SpawnedOrAnyParentSpawned || (!canTakeFromInventory && !haulThing.Spawned)) + { + Log.Message(pawn?.ToString() + " tried to start carry " + haulThing?.ToString() + " which isn't spawned."); + pawn.jobs.EndCurrentJob(JobCondition.Incompletable); + return true; + } + if (haulThing.stackCount == 0) + { + Log.Message(pawn?.ToString() + " tried to start carry " + haulThing?.ToString() + " which had stackcount 0."); + pawn.jobs.EndCurrentJob(JobCondition.Incompletable); + return true; + } + if (pawn.jobs.curJob.count <= 0) + { + Log.Error("Invalid count: " + pawn.jobs.curJob.count + ", setting to 1. Job was " + pawn.jobs.curJob); + pawn.jobs.curJob.count = 1; + } + return false; + } + + public static Toil StartCarryThing(TargetIndex haulableInd, bool putRemainderInQueue = false, bool subtractNumTakenFromJobCount = false, bool failIfStackCountLessThanJobCount = false, bool reserve = true, bool canTakeFromInventory = false) + { + Toil toil = ToilMaker.MakeToil("StartCarryThing"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + Thing thing = curJob.GetTarget(haulableInd).Thing; + if (!ErrorCheckForCarry(actor, thing, canTakeFromInventory)) + { + if (curJob.count == 0) + { + throw new Exception($"StartCarryThing job had count = {curJob.count}. Job: {curJob}"); + } + int num = actor.carryTracker.AvailableStackSpace(thing.def); + if (num <= 0) + { + int num2 = actor.carryTracker.MaxStackSpaceEver(thing.def); + int num3 = 0; + if (actor.carryTracker.CarriedThing != null) + { + num3 = actor.carryTracker.CarriedThing.stackCount; + } + throw new Exception($"StartCarryThing got availableStackSpace {num} (haulTarg {thing}, Job: {curJob}, maximum: {num2}, carrying: {num3})"); + } + if (failIfStackCountLessThanJobCount && thing.stackCount < curJob.count) + { + actor.jobs.curDriver.EndJobWith(JobCondition.Incompletable); + } + else + { + int num4 = Mathf.Min(curJob.count, num, thing.stackCount); + if (num4 <= 0) + { + int num5 = actor.carryTracker.MaxStackSpaceEver(thing.def); + int num6 = 0; + if (actor.carryTracker.CarriedThing != null) + { + num6 = actor.carryTracker.CarriedThing.stackCount; + } + throw new Exception($"StartCarryThing zero or negative desiredNumToTake ({num4}), curJob.count: {curJob.count}, availableStackSpace: {num} (maximum: {num5}, carrying: {num6}), haulTarg.stackCount: {thing.stackCount}"); + } + int stackCount = thing.stackCount; + int num7 = actor.carryTracker.TryStartCarry(thing, num4, reserve); + if (num7 == 0) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + if (num7 < stackCount) + { + int num8 = curJob.count - num7; + if (putRemainderInQueue && num8 > 0) + { + curJob.GetTargetQueue(haulableInd).Insert(0, thing); + Job job = curJob; + if (job.countQueue == null) + { + job.countQueue = new List(); + } + curJob.countQueue.Insert(0, num8); + } + else if (actor.Map.reservationManager.ReservedBy(thing, actor, curJob)) + { + actor.Map.reservationManager.Release(thing, actor, curJob); + } + } + if (subtractNumTakenFromJobCount) + { + curJob.count -= num7; + } + curJob.SetTarget(haulableInd, actor.carryTracker.CarriedThing); + actor.records.Increment(RecordDefOf.ThingsHauled); + } + } + }; + return toil; + } + + public static Toil StoreThingJob(TargetIndex thingIndex) + { + Toil toil = ToilMaker.MakeToil("StoreThingJob"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.CurJob; + Thing thing = curJob.GetTarget(thingIndex).Thing; + Job job = HaulAIUtility.HaulToStorageJob(actor, thing, curJob.playerForced); + if (job != null) + { + actor.jobs.TryTakeOrderedJob(job, JobTag.Misc); + } + }; + return toil; + } + + public static Toil DropCarriedThing() + { + Toil toil = ToilMaker.MakeToil("DropCarriedThing"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Thing resultingThing; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to drop carried thing but is not carrying anything."); + } + else if (!actor.carryTracker.TryDropCarriedThing(actor.Position, ThingPlaceMode.Direct, out resultingThing)) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + }; + return toil; + } + + public static Toil JumpIfAlsoCollectingNextTargetInQueue(Toil gotoGetTargetToil, TargetIndex ind) + { + Toil toil = ToilMaker.MakeToil("JumpIfAlsoCollectingNextTargetInQueue"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + List targetQueue = curJob.GetTargetQueue(ind); + if (!targetQueue.NullOrEmpty() && curJob.count > 0) + { + if (actor.carryTracker.CarriedThing == null) + { + Log.Error("JumpToAlsoCollectTargetInQueue run on " + actor?.ToString() + " who is not carrying something."); + } + else if (actor.carryTracker.AvailableStackSpace(actor.carryTracker.CarriedThing.def) > 0) + { + for (int i = 0; i < targetQueue.Count; i++) + { + if (!GenAI.CanUseItemForWork(actor, targetQueue[i].Thing)) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + break; + } + if (targetQueue[i].Thing.def == actor.carryTracker.CarriedThing.def) + { + curJob.SetTarget(ind, targetQueue[i].Thing); + targetQueue.RemoveAt(i); + actor.jobs.curDriver.JumpToToil(gotoGetTargetToil); + break; + } + } + } + } + }; + return toil; + } + + public static Toil CheckForGetOpportunityDuplicate(Toil getHaulTargetToil, TargetIndex haulableInd, TargetIndex storeCellInd, bool takeFromValidStorage = false, Predicate extraValidator = null) + { + Toil toil = ToilMaker.MakeToil("CheckForGetOpportunityDuplicate"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + if (actor.carryTracker.CarriedThing.def.stackLimit != 1 && !actor.carryTracker.Full && curJob.count > 0) + { + Thing thing = GenClosest.ClosestThingReachable(actor.Position, actor.Map, ThingRequest.ForGroup(ThingRequestGroup.HaulableAlways), PathEndMode.ClosestTouch, TraverseParms.For(actor), 8f, DupeValidator); + if (thing != null) + { + curJob.SetTarget(haulableInd, thing); + actor.jobs.curDriver.JumpToToil(getHaulTargetToil); + } + } + bool DupeValidator(Thing t) + { + if (!t.Spawned) + { + return false; + } + if (t.def != actor.carryTracker.CarriedThing.def) + { + return false; + } + if (!t.CanStackWith(actor.carryTracker.CarriedThing)) + { + return false; + } + if (t.IsForbidden(actor)) + { + return false; + } + if (!t.IsSociallyProper(actor, forPrisoner: false, animalsCare: true)) + { + return false; + } + if (takeFromValidStorage && storeCellInd != 0 && curJob.GetTarget(storeCellInd).Cell.TryGetSlotGroup(actor.Map, out var group) && t.TryGetValidStoragePriority(out var priority) && (int)priority >= (int)group.Settings.Priority) + { + return false; + } + if (storeCellInd != 0 && !curJob.GetTarget(storeCellInd).Cell.IsValidStorageFor(actor.Map, t)) + { + return false; + } + if (!actor.CanReserve(t)) + { + return false; + } + if (extraValidator != null && !extraValidator(t)) + { + return false; + } + return true; + } + }; + return toil; + } + + public static Toil CarryHauledThingToCell(TargetIndex squareIndex, PathEndMode pathEndMode = PathEndMode.ClosestTouch) + { + Toil toil = ToilMaker.MakeToil("CarryHauledThingToCell"); + toil.initAction = delegate + { + IntVec3 cell3 = toil.actor.jobs.curJob.GetTarget(squareIndex).Cell; + toil.actor.pather.StartPath(cell3, pathEndMode); + }; + toil.defaultCompleteMode = ToilCompleteMode.PatherArrival; + toil.AddEndCondition(delegate + { + Pawn actor2 = toil.actor; + IntVec3 cell2 = actor2.jobs.curJob.GetTarget(squareIndex).Cell; + CompPushable compPushable2 = actor2.carryTracker.CarriedThing.TryGetComp(); + if (compPushable2 != null) + { + Vector3 v = actor2.Position.ToVector3() + compPushable2.drawPos; + if (new IntVec3(v) == cell2) + { + return JobCondition.Succeeded; + } + } + return JobCondition.Ongoing; + }); + toil.AddFailCondition(delegate + { + Pawn actor = toil.actor; + IntVec3 cell = actor.jobs.curJob.GetTarget(squareIndex).Cell; + if (actor.carryTracker.CarriedThing == null) + { + return true; + } + if (actor.jobs.curJob.haulMode == HaulMode.ToCellStorage && !cell.IsValidStorageFor(actor.Map, actor.carryTracker.CarriedThing)) + { + return true; + } + CompPushable compPushable = actor.carryTracker.CarriedThing.TryGetComp(); + return (compPushable != null && !compPushable.canBePushed) ? true : false; + }); + return toil; + } + + public static Toil PlaceCarriedThingInCellFacing(TargetIndex facingTargetInd) + { + Toil toil = ToilMaker.MakeToil("PlaceCarriedThingInCellFacing"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to place hauled thing in facing cell but is not hauling anything."); + } + else + { + LocalTargetInfo target = actor.CurJob.GetTarget(facingTargetInd); + IntVec3 intVec = ((!target.HasThing) ? target.Cell : target.Thing.OccupiedRect().ClosestCellTo(actor.Position)); + IntVec3 dropLoc = actor.Position + Pawn_RotationTracker.RotFromAngleBiased((actor.Position - intVec).AngleFlat).FacingCell; + if (!actor.carryTracker.TryDropCarriedThing(dropLoc, ThingPlaceMode.Direct, out var _)) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + } + }; + return toil; + } + + public static Toil PlaceHauledThingInCell(TargetIndex cellInd, Toil nextToilOnPlaceFailOrIncomplete, bool storageMode, bool tryStoreInSameStorageIfSpotCantHoldWholeStack = false) + { + Toil toil = ToilMaker.MakeToil("PlaceHauledThingInCell"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + IntVec3 cell = curJob.GetTarget(cellInd).Cell; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to place hauled thing in cell but is not hauling anything."); + } + else + { + SlotGroup slotGroup = actor.Map.haulDestinationManager.SlotGroupAt(cell); + if (slotGroup != null && slotGroup.Settings.AllowedToAccept(actor.carryTracker.CarriedThing)) + { + actor.Map.designationManager.TryRemoveDesignationOn(actor.carryTracker.CarriedThing, DesignationDefOf.Haul); + } + Action placedAction = null; + if (curJob.def == JobDefOf.DoBill || curJob.def == JobDefOf.RecolorApparel || curJob.def == JobDefOf.RefuelAtomic || curJob.def == JobDefOf.RearmTurretAtomic) + { + placedAction = delegate(Thing th, int added) + { + HaulAIUtility.UpdateJobWithPlacedThings(curJob, th, added); + }; + } + if (!actor.carryTracker.TryDropCarriedThing(cell, ThingPlaceMode.Direct, out var _, placedAction)) + { + if (storageMode) + { + IntVec3 storeCell; + if (nextToilOnPlaceFailOrIncomplete != null && ((tryStoreInSameStorageIfSpotCantHoldWholeStack && StoreUtility.TryFindBestBetterStoreCellForIn(actor.carryTracker.CarriedThing, actor, actor.Map, StoragePriority.Unstored, actor.Faction, curJob.bill.GetSlotGroup(), out var foundCell)) || StoreUtility.TryFindBestBetterStoreCellFor(actor.carryTracker.CarriedThing, actor, actor.Map, StoragePriority.Unstored, actor.Faction, out foundCell))) + { + if (actor.CanReserve(foundCell)) + { + actor.Reserve(foundCell, actor.CurJob); + } + actor.CurJob.SetTarget(cellInd, foundCell); + actor.jobs.curDriver.JumpToToil(nextToilOnPlaceFailOrIncomplete); + } + else if (HaulAIUtility.CanHaulAside(actor, actor.carryTracker.CarriedThing, out storeCell)) + { + curJob.SetTarget(cellInd, storeCell); + curJob.count = int.MaxValue; + curJob.haulOpportunisticDuplicates = false; + curJob.haulMode = HaulMode.ToCellNonStorage; + if (nextToilOnPlaceFailOrIncomplete != null) + { + actor.jobs.curDriver.JumpToToil(nextToilOnPlaceFailOrIncomplete); + } + } + else + { + Log.Warning($"Incomplete haul for {actor}: Could not find anywhere to put {actor.carryTracker.CarriedThing} near {actor.Position}. Destroying. This should be very uncommon!"); + actor.carryTracker.CarriedThing.Destroy(); + } + } + else if (nextToilOnPlaceFailOrIncomplete != null) + { + actor.jobs.curDriver.JumpToToil(nextToilOnPlaceFailOrIncomplete); + } + } + } + }; + return toil; + } + + public static Toil CarryHauledThingToContainer() + { + Toil gotoDest = ToilMaker.MakeToil("CarryHauledThingToContainer"); + gotoDest.initAction = delegate + { + gotoDest.actor.pather.StartPath(gotoDest.actor.jobs.curJob.targetB.Thing, PathEndMode.Touch); + }; + gotoDest.AddFailCondition(delegate + { + Thing thing = gotoDest.actor.jobs.curJob.targetB.Thing; + if (thing.Destroyed || (!gotoDest.actor.jobs.curJob.ignoreForbidden && thing.IsForbidden(gotoDest.actor))) + { + return true; + } + ThingOwner thingOwner = thing.TryGetInnerInteractableThingOwner(); + return (thingOwner != null && !thingOwner.CanAcceptAnyOf(gotoDest.actor.carryTracker.CarriedThing)) ? true : false; + }); + gotoDest.defaultCompleteMode = ToilCompleteMode.PatherArrival; + return gotoDest; + } + + public static Toil DepositHauledThingInContainer(TargetIndex containerInd, TargetIndex reserveForContainerInd, Action onDeposited = null) + { + Toil toil = ToilMaker.MakeToil("DepositHauledThingInContainer"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to place hauled thing in container but is not hauling anything."); + } + else + { + Thing thing = curJob.GetTarget(containerInd).Thing; + ThingOwner thingOwner = thing.TryGetInnerInteractableThingOwner(); + if (thingOwner != null) + { + int num = actor.carryTracker.CarriedThing.stackCount; + if (thing is IHaulEnroute haulEnroute) + { + ThingDef def = actor.carryTracker.CarriedThing.def; + num = Mathf.Min(haulEnroute.GetSpaceRemainingWithEnroute(def, actor), num); + if (reserveForContainerInd != 0) + { + Thing thing2 = curJob.GetTarget(reserveForContainerInd).Thing; + if (!thing2.DestroyedOrNull() && thing2 != haulEnroute && thing2 is IHaulEnroute enroute) + { + int spaceRemainingWithEnroute = enroute.GetSpaceRemainingWithEnroute(def, actor); + num = Mathf.Min(num, actor.carryTracker.CarriedThing.stackCount - spaceRemainingWithEnroute); + } + } + } + Thing carriedThing = actor.carryTracker.CarriedThing; + int num2 = actor.carryTracker.innerContainer.TryTransferToContainer(carriedThing, thingOwner, num); + if (num2 != 0) + { + if (thing is IHaulEnroute container) + { + thing.Map.enrouteManager.ReleaseFor(container, actor); + } + if (thing is INotifyHauledTo notifyHauledTo) + { + notifyHauledTo.Notify_HauledTo(actor, carriedThing, num2); + } + if (thing is ThingWithComps thingWithComps) + { + foreach (ThingComp allComp in thingWithComps.AllComps) + { + if (allComp is INotifyHauledTo notifyHauledTo2) + { + notifyHauledTo2.Notify_HauledTo(actor, carriedThing, num2); + } + } + } + if (curJob.def == JobDefOf.DoBill) + { + HaulAIUtility.UpdateJobWithPlacedThings(curJob, carriedThing, num2); + } + onDeposited?.Invoke(); + } + } + else if (curJob.GetTarget(containerInd).Thing.def.Minifiable) + { + actor.carryTracker.innerContainer.ClearAndDestroyContents(); + } + else + { + Log.Error("Could not deposit hauled thing in container: " + curJob.GetTarget(containerInd).Thing); + } + } + }; + return toil; + } + + public static Toil JumpToCarryToNextContainerIfPossible(Toil carryToContainerToil, TargetIndex primaryTargetInd) + { + Toil toil = ToilMaker.MakeToil("JumpToCarryToNextContainerIfPossible"); + toil.debugName = "Jump carry if possible"; + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + if (actor.carryTracker.CarriedThing != null && curJob.targetQueueB != null && curJob.targetQueueB.Count > 0) + { + if (TryGetNextDestinationFromQueue(primaryTargetInd, TargetIndex.B, actor.carryTracker.CarriedThing.def, curJob, actor, out var nextTarget)) + { + curJob.targetQueueB.RemoveAll((LocalTargetInfo target) => target.Thing == nextTarget); + curJob.targetB = nextTarget; + curJob.targetC = nextTarget; + actor.jobs.curDriver.JumpToToil(carryToContainerToil); + } + } + }; + return toil; + } + + public static bool TryGetNextDestinationFromQueue(TargetIndex primaryIndex, TargetIndex destIndex, ThingDef stuff, Job job, Pawn actor, out Thing target) + { + Thing primaryTarget = job.GetTarget(primaryIndex).Thing; + target = null; + if (actor.carryTracker?.CarriedThing == null) + { + return false; + } + bool hasSpareItems = actor.carryTracker.CarriedThing.stackCount > 0; + if (primaryTarget != null && primaryTarget.Spawned && primaryTarget is IHaulEnroute enroute) + { + int spaceRemainingWithEnroute = enroute.GetSpaceRemainingWithEnroute(stuff, actor); + hasSpareItems = actor.carryTracker.CarriedThing.stackCount > spaceRemainingWithEnroute; + } + target = GenClosest.ClosestThing_Global_Reachable(actor.Position, actor.Map, from x in job.GetTargetQueue(destIndex) + select x.Thing, PathEndMode.Touch, TraverseParms.For(actor), 99999f, Validator); + return target != null; + bool Validator(Thing th) + { + if (!(th is IHaulEnroute enroute2)) + { + return false; + } + if (enroute2.GetSpaceRemainingWithEnroute(stuff, actor) <= 0) + { + return false; + } + if (th != primaryTarget && !hasSpareItems) + { + return false; + } + return true; + } + } + + public static Toil TakeToInventory(TargetIndex ind, int count) + { + return TakeToInventory(ind, count, null, null); + } + + private static Toil TakeToInventory(TargetIndex ind, int? count, Func countGetter, Func countGetterPassingThing) + { + Toil takeThing = ToilMaker.MakeToil("TakeToInventory"); + takeThing.initAction = delegate + { + Pawn actor = takeThing.actor; + Thing thing = actor.CurJob.GetTarget(ind).Thing; + if (!ErrorCheckForCarry(actor, thing)) + { + int num = Mathf.Min(count ?? countGetterPassingThing?.Invoke(thing) ?? countGetter(), thing.stackCount); + if (actor.CurJob.checkEncumbrance) + { + num = Math.Min(num, MassUtility.CountToPickUpUntilOverEncumbered(actor, thing)); + } + if (num <= 0) + { + actor.jobs.curDriver.ReadyForNextToil(); + } + else + { + actor.inventory.GetDirectlyHeldThings().TryAdd(thing.SplitOff(num)); + if (thing.def.ingestible != null && (int)thing.def.ingestible.preferability <= 5) + { + actor.mindState.lastInventoryRawFoodUseTick = Find.TickManager.TicksGame; + } + thing.def.soundPickup.PlayOneShot(new TargetInfo(actor.Position, actor.Map)); + } + } + }; + return takeThing; + } + + public static Toil TakeToInventory(TargetIndex ind, Func countGetter) + { + return TakeToInventory(ind, null, countGetter, null); + } + + public static Toil TakeToInventory(TargetIndex ind, Func countGetter) + { + return TakeToInventory(ind, null, null, countGetter); + } + + public static Toil TakeFromOtherInventory(Thing item, ThingOwner taker, ThingOwner holder, int count = -1, TargetIndex indexToSet = TargetIndex.None) + { + Toil toil = ToilMaker.MakeToil("TakeFromOtherInventory"); + toil.initAction = delegate + { + if (!holder.Contains(item)) + { + toil.actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + else + { + count = ((count < 0) ? toil.actor.jobs.curJob.count : count); + holder.TryTransferToContainer(item, taker, Mathf.Min(item.stackCount, count), out var resultingTransferredItem); + if (resultingTransferredItem == null) + { + Log.Warning($"Taker {toil.actor.Label} unable to take count {count} of thing {item.Label} from holder's inventory"); + toil.actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + else if (indexToSet != 0) + { + toil.actor.jobs.curJob.SetTarget(indexToSet, resultingTransferredItem); + } + } + }; + return toil; + } + + public static Toil CheckItemCarriedByOtherPawn(Thing item, TargetIndex targetPawnIfCarried = TargetIndex.None, Toil jumpIfCarriedByOther = null) + { + Toil toil = ToilMaker.MakeToil("CheckItemCarriedByOtherPawn"); + toil.initAction = delegate + { + Pawn pawn = (item?.ParentHolder as Pawn_InventoryTracker)?.pawn; + if (pawn != null && pawn != toil.actor) + { + if (targetPawnIfCarried != 0) + { + toil.actor.jobs.curJob.SetTarget(targetPawnIfCarried, pawn); + } + if (jumpIfCarriedByOther != null) + { + toil.actor.jobs.curDriver.JumpToToil(jumpIfCarriedByOther); + } + } + }; + toil.defaultCompleteMode = ToilCompleteMode.Instant; + toil.atomicWithPrevious = true; + return toil; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PawnUtility.txt` +**相似度:** 0.5783 + +```csharp +public static class PawnUtility +{ + private static List tmpPawns = new List(); + + private static List tmpPawnKindsStr = new List(); + + private static HashSet tmpAddedPawnKinds = new HashSet(); + + private static List tmpPawnKinds = new List(); + + private static List tmpThings = new List(); + + public static Faction GetFactionLeaderFaction(Pawn pawn) + { + List allFactionsListForReading = Find.FactionManager.AllFactionsListForReading; + for (int i = 0; i < allFactionsListForReading.Count; i++) + { + if (allFactionsListForReading[i].leader == pawn) + { + return allFactionsListForReading[i]; + } + } + return null; + } + + public static bool IsFactionLeader(Pawn pawn) + { + return GetFactionLeaderFaction(pawn) != null; + } + + public static bool IsInteractionBlocked(this Pawn pawn, InteractionDef interaction, bool isInitiator, bool isRandom) + { + MentalStateDef mentalStateDef = pawn.MentalStateDef; + if (mentalStateDef != null) + { + if (isRandom) + { + return mentalStateDef.blockRandomInteraction; + } + if (interaction == null) + { + return false; + } + List list = (isInitiator ? mentalStateDef.blockInteractionInitiationExcept : mentalStateDef.blockInteractionRecipientExcept); + if (list != null) + { + return !list.Contains(interaction); + } + return false; + } + List hediffs = pawn.health.hediffSet.hediffs; + for (int i = 0; i < hediffs.Count; i++) + { + if (hediffs[i].def.blocksSocialInteraction) + { + return true; + } + } + Lord lord = pawn.GetLord(); + if (lord != null && lord.BlocksSocialInteraction(pawn)) + { + return true; + } + return false; + } + + public static bool IsKidnappedPawn(Pawn pawn) + { + List allFactionsListForReading = Find.FactionManager.AllFactionsListForReading; + for (int i = 0; i < allFactionsListForReading.Count; i++) + { + if (allFactionsListForReading[i].kidnapped.KidnappedPawnsListForReading.Contains(pawn)) + { + return true; + } + } + return false; + } + + public static bool IsTravelingInTransportPodWorldObject(Pawn pawn) + { + if (!pawn.IsWorldPawn() || !ThingOwnerUtility.AnyParentIs(pawn)) + { + return ThingOwnerUtility.AnyParentIs(pawn); + } + return true; + } + + public static bool ForSaleBySettlement(Pawn pawn) + { + return pawn.ParentHolder is Settlement_TraderTracker; + } + + public static bool IsCarrying(this Pawn pawn) + { + if (!pawn.Destroyed && pawn.carryTracker != null) + { + return pawn.carryTracker.CarriedThing != null; + } + return false; + } + + public static bool IsCarryingPawn(this Pawn pawn, Pawn carryPawn = null) + { + if (pawn.carryTracker != null && pawn.carryTracker.CarriedThing is Pawn) + { + if (carryPawn != null) + { + return pawn.carryTracker.CarriedThing == carryPawn; + } + return true; + } + return false; + } + + public static bool IsCarryingThing(this Pawn pawn, Thing carriedThing) + { + if (pawn.carryTracker != null && pawn.carryTracker.CarriedThing != null) + { + return pawn.carryTracker.CarriedThing == carriedThing; + } + return false; + } + + public static void TryDestroyStartingColonistFamily(Pawn pawn) + { + if (!pawn.relations.RelatedPawns.Any((Pawn x) => Find.GameInitData.startingAndOptionalPawns.Contains(x))) + { + DestroyStartingColonistFamily(pawn); + } + } + + public static void DestroyStartingColonistFamily(Pawn pawn) + { + foreach (Pawn item in pawn.relations.RelatedPawns.ToList()) + { + if (!Find.GameInitData.startingAndOptionalPawns.Contains(item)) + { + WorldPawnSituation situation = Find.WorldPawns.GetSituation(item); + if (situation == WorldPawnSituation.Free || situation == WorldPawnSituation.Dead) + { + Find.WorldPawns.RemovePawn(item); + Find.WorldPawns.PassToWorld(item, PawnDiscardDecideMode.Discard); + } + } + } + } + + public static bool EnemiesAreNearby(Pawn pawn, int regionsToScan = 9, bool passDoors = false, float maxDistance = -1f, int maxCount = 1, bool invisible = false) + { + TraverseParms tp = (passDoors ? TraverseParms.For(TraverseMode.PassDoors) : TraverseParms.For(pawn)); + int count = 0; + RegionTraverser.BreadthFirstTraverse(pawn.Position, pawn.Map, (Region from, Region to) => to.Allows(tp, isDestination: false), delegate(Region r) + { + List list = r.ListerThings.ThingsInGroup(ThingRequestGroup.AttackTarget); + for (int i = 0; i < list.Count; i++) + { + Thing thing = list[i]; + if ((maxDistance <= 0f || thing.Position.InHorDistOf(pawn.Position, maxDistance)) && thing.HostileTo(pawn) && (invisible || !(thing is Pawn pawn2) || !pawn2.IsPsychologicallyInvisible())) + { + count++; + } + } + return count >= maxCount; + }, regionsToScan); + return count >= maxCount; + } + + public static bool WillSoonHaveBasicNeed(Pawn p, float thresholdOffset = 0.05f) + { + if (p.needs == null) + { + return false; + } + if (p.needs.rest != null && p.needs.rest.CurLevel < 0.28f + thresholdOffset) + { + return true; + } + if (p.needs.food != null && p.needs.food.CurLevelPercentage < p.needs.food.PercentageThreshHungry + thresholdOffset) + { + return true; + } + return false; + } + + public static bool CanCasuallyInteractNow(this Pawn p, bool twoWayInteraction = false, bool canInteractWhileSleeping = false, bool canInteractWhileRoaming = false, bool canInteractWhileDrafted = false) + { + if (p.Drafted && !canInteractWhileDrafted) + { + return false; + } + if (p.IsPsychologicallyInvisible()) + { + return false; + } + if (ThinkNode_ConditionalShouldFollowMaster.ShouldFollowMaster(p)) + { + return false; + } + if (p.InAggroMentalState) + { + return false; + } + if (p.InMentalState && p.MentalStateDef == MentalStateDefOf.Roaming && !canInteractWhileRoaming) + { + return false; + } + if (!p.Awake() && !canInteractWhileSleeping) + { + return false; + } + if (p.IsFormingCaravan()) + { + return false; + } + Job curJob = p.CurJob; + if (curJob != null && twoWayInteraction && (!curJob.def.casualInterruptible || !curJob.playerForced)) + { + return false; + } + return true; + } + + public static IEnumerable SpawnedMasteredPawns(Pawn master) + { + if (Current.ProgramState != ProgramState.Playing || master.Faction == null || !master.RaceProps.Humanlike || !master.Spawned) + { + yield break; + } + List pawns = master.Map.mapPawns.SpawnedPawnsInFaction(master.Faction); + for (int i = 0; i < pawns.Count; i++) + { + if (pawns[i].playerSettings != null && pawns[i].playerSettings.Master == master) + { + yield return pawns[i]; + } + } + } + + public static bool InValidState(Pawn p) + { + if (p.health == null) + { + return false; + } + if (!p.Dead && (p.stances == null || p.mindState == null || p.needs == null || p.ageTracker == null)) + { + return false; + } + return true; + } + + public static PawnPosture GetPosture(this Pawn p) + { + PawnPosture pawnPosture = (p.Dead ? PawnPosture.LayingOnGroundNormal : ((!ModsConfig.BiotechActive || !p.IsCharging()) ? ((!(p.ParentHolder is IThingHolderWithDrawnPawn thingHolderWithDrawnPawn)) ? (p.Downed ? ((p.jobs == null || !p.jobs.posture.Laying()) ? PawnPosture.LayingOnGroundNormal : p.jobs.posture) : ((p.jobs != null) ? p.jobs.posture : PawnPosture.Standing)) : thingHolderWithDrawnPawn.HeldPawnPosture) : PawnPosture.Standing)); + Pawn_MindState mindState = p.mindState; + if (mindState != null && mindState.duty?.def?.forceFaceUpPosture == true && pawnPosture != 0) + { + pawnPosture |= PawnPosture.FaceUpMask; + } + return pawnPosture; + } + + public static void ForceWait(Pawn pawn, int ticks, Thing faceTarget = null, bool maintainPosture = false, bool maintainSleep = false) + { + if (ticks <= 0) + { + Log.ErrorOnce("Forcing a wait for zero ticks", 47045639); + } + JobDef def = (maintainPosture ? JobDefOf.Wait_MaintainPosture : JobDefOf.Wait); + if (pawn.IsDeactivated()) + { + def = JobDefOf.Deactivated; + } + if (pawn.IsSelfShutdown()) + { + def = JobDefOf.SelfShutdown; + } + else if (pawn.InBed()) + { + def = (pawn.Awake() ? JobDefOf.LayDownAwake : JobDefOf.LayDown); + } + else if (!pawn.health.capacities.CanBeAwake) + { + def = JobDefOf.Wait_Downed; + } + else if (maintainSleep && !pawn.Awake()) + { + def = JobDefOf.Wait_Asleep; + } + Job job = JobMaker.MakeJob(def, faceTarget); + if (maintainSleep && !pawn.Awake()) + { + job.forceSleep = true; + job.targetA = pawn.Position; + } + if (pawn.InBed()) + { + job.targetA = pawn.CurrentBed(); + } + job.expiryInterval = ticks; + pawn.jobs.StartJob(job, JobCondition.InterruptForced, null, resumeCurJobAfterwards: true); + } + + public static void GainComfortFromCellIfPossible(this Pawn p, int delta, bool chairsOnly = false) + { + if (p.Spawned && p.IsHashIntervalTick(15, delta)) + { + Building edifice = p.Position.GetEdifice(p.Map); + if (edifice != null && (!chairsOnly || (edifice.def.category == ThingCategory.Building && edifice.def.building.isSittable))) + { + GainComfortFromThingIfPossible(p, edifice, delta); + } + } + } + + public static void GainComfortFromThingIfPossible(Pawn p, Thing from, int delta) + { + if (p.IsHashIntervalTick(15, delta)) + { + float statValue = from.GetStatValue(StatDefOf.Comfort, applyPostProcess: true, 100); + if (statValue >= 0f && p.needs != null && p.needs.comfort != null) + { + p.needs.comfort.ComfortUsed(statValue); + } + } + } + + public static float BodyResourceGrowthSpeed(Pawn pawn) + { + return pawn.needs?.food?.CurCategory.HungerMultiplier() ?? 1f; + } + + public static bool FertileMateTarget(Pawn male, Pawn female) + { + if (female.gender != Gender.Female || female.Sterile()) + { + return false; + } + CompEggLayer compEggLayer = female.TryGetComp(); + if (compEggLayer != null) + { + return !compEggLayer.FullyFertilized; + } + return true; + } + + public static void Mated(Pawn male, Pawn female) + { + if (!female.Sterile() && !male.Sterile()) + { + CompEggLayer compEggLayer = female.TryGetComp(); + if (compEggLayer != null) + { + compEggLayer.Fertilize(male); + } + else if (Rand.Value < 0.5f) + { + Hediff_Pregnant hediff_Pregnant = (Hediff_Pregnant)HediffMaker.MakeHediff(HediffDefOf.Pregnant, female); + hediff_Pregnant.SetParents(null, male, null); + female.health.AddHediff(hediff_Pregnant); + } + } + } + + public static bool PlayerForcedJobNowOrSoon(Pawn pawn) + { + if (pawn.jobs == null) + { + return false; + } + Job curJob = pawn.CurJob; + if (curJob != null) + { + return curJob.playerForced; + } + if (pawn.jobs.jobQueue.Count > 0) + { + return pawn.jobs.jobQueue.Peek().job.playerForced; + } + return false; + } + + public static bool TrySpawnHatchedOrBornPawn(Pawn pawn, Thing motherOrEgg, IntVec3? positionOverride = null) + { + if (motherOrEgg.SpawnedOrAnyParentSpawned) + { + return GenSpawn.Spawn(pawn, positionOverride ?? motherOrEgg.PositionHeld, motherOrEgg.MapHeld) != null; + } + if (motherOrEgg is Pawn pawn2) + { + if (pawn2.IsCaravanMember()) + { + pawn2.GetCaravan().AddPawn(pawn, addCarriedPawnToWorldPawnsIfAny: true); + Find.WorldPawns.PassToWorld(pawn); + return true; + } + if (pawn2.IsWorldPawn()) + { + Find.WorldPawns.PassToWorld(pawn); + return true; + } + } + else if (motherOrEgg.ParentHolder != null && motherOrEgg.ParentHolder is Pawn_InventoryTracker pawn_InventoryTracker) + { + if (pawn_InventoryTracker.pawn.IsCaravanMember()) + { + pawn_InventoryTracker.pawn.GetCaravan().AddPawn(pawn, addCarriedPawnToWorldPawnsIfAny: true); + Find.WorldPawns.PassToWorld(pawn); + return true; + } + if (pawn_InventoryTracker.pawn.IsWorldPawn()) + { + Find.WorldPawns.PassToWorld(pawn); + return true; + } + } + return false; + } + + public static bool TryGetAvoidGrid(this Pawn p, out AvoidGrid grid, bool onlyIfLordAllows = true) + { + grid = null; + if (!p.Spawned) + { + return false; + } + if (p.Faction == null) + { + return false; + } + if (!p.Faction.def.canUseAvoidGrid) + { + return false; + } + if (p.Faction == Faction.OfPlayer || !p.Faction.HostileTo(Faction.OfPlayer)) + { + return false; + } + if (p.kindDef.canUseAvoidGrid) + { + grid = p.Map.avoidGrid; + return true; + } + if (onlyIfLordAllows) + { + Lord lord = p.GetLord(); + LordToil lordToil = lord?.CurLordToil; + if (lordToil != null && lordToil.useAvoidGrid) + { + grid = lord.Map.avoidGrid; + return true; + } + return false; + } + grid = p.Map.avoidGrid; + return true; + } + + public static bool ShouldCollideWithPawns(Pawn p) + { + if (p == null || p.Downed || p.Dead) + { + return false; + } + if (p.IsShambler) + { + return true; + } + if (!p.mindState.anyCloseHostilesRecently) + { + return false; + } + if (p.IsPsychologicallyInvisible()) + { + return false; + } + if (!p.kindDef.collidesWithPawns) + { + return false; + } + return true; + } + + public static bool AnyPawnBlockingPathAt(IntVec3 c, Pawn forPawn, bool actAsIfHadCollideWithPawnsJob = false, bool collideOnlyWithStandingPawns = false, bool forPathFinder = false, bool useId = false) + { + return PawnBlockingPathAt(c, forPawn, actAsIfHadCollideWithPawnsJob, collideOnlyWithStandingPawns, forPathFinder, useId) != null; + } + + public static Pawn PawnBlockingPathAt(IntVec3 c, Pawn forPawn, bool actAsIfHadCollideWithPawnsJob = false, bool collideOnlyWithStandingPawns = false, bool forPathFinder = false, bool useId = false) + { + List thingList = c.GetThingList(forPawn.Map); + if (thingList.Count == 0) + { + return null; + } + bool collideWithNonHostile = false; + if (actAsIfHadCollideWithPawnsJob) + { + collideWithNonHostile = true; + } + else + { + Job curJob = forPawn.CurJob; + if (curJob != null && (curJob.collideWithPawns || curJob.def.collideWithPawns || forPawn.jobs.curDriver.collideWithPawns)) + { + collideWithNonHostile = true; + } + } + for (int i = 0; i < thingList.Count; i++) + { + Pawn pawn = thingList[i] as Pawn; + if (PawnBlockedBy(forPawn, pawn, collideOnlyWithStandingPawns, collideWithNonHostile, forPathFinder, useId)) + { + return pawn; + } + } + return null; + } + + public static bool PawnBlockedBy(Pawn forPawn, Pawn other, bool collideOnlyWithStandingPawns = false, bool collideWithNonHostile = false, bool forPathFinder = false, bool useId = false) + { + if (!ShouldCollideWithPawns(other)) + { + return false; + } + if (useId && forPawn.thingIDNumber < other.thingIDNumber && !other.stances.FullBodyBusyRecently) + { + return false; + } + if (other == forPawn) + { + return false; + } + if (collideOnlyWithStandingPawns) + { + if (other.pather.MovingNow) + { + return false; + } + if (other.pather.Moving && other.pather.MovedRecently(60)) + { + return false; + } + } + if (PawnsCanShareCellBecauseOfBodySize(other, forPawn)) + { + return false; + } + if (other.IsPsychologicallyInvisible()) + { + return false; + } + if (!other.kindDef.collidesWithPawns) + { + return false; + } + if (other.HostileTo(forPawn)) + { + return true; + } + if (forPawn.IsShambler && !MutantUtility.ShamblerShouldCollideWith(forPawn, other)) + { + return false; + } + if (collideWithNonHostile) + { + if (!forPathFinder && forPawn.Drafted && other.RaceProps.Animal) + { + return false; + } + Job curJob = other.CurJob; + if (curJob != null && (curJob.collideWithPawns || curJob.def.collideWithPawns || other.jobs.curDriver.collideWithPawns)) + { + return true; + } + } + return false; + } + + private static bool PawnsCanShareCellBecauseOfBodySize(Pawn p1, Pawn p2) + { + float bodySize = p1.BodySize; + float bodySize2 = p2.BodySize; + if (bodySize >= 1.5f || bodySize2 >= 1.5f) + { + return false; + } + float num = bodySize / bodySize2; + if (num < 1f) + { + num = 1f / num; + } + return num > 3.57f; + } + + public static bool KnownDangerAt(IntVec3 c, Map map, Pawn forPawn) + { + return c.GetEdifice(map)?.IsDangerousFor(forPawn) ?? false; + } + + [Obsolete("Lord and job report display validation is now checked separately.")] + public static bool ShouldDisplayActionInInspectString(Pawn p) + { + if (p.Faction != Faction.OfPlayer && p.HostFaction != Faction.OfPlayer) + { + return false; + } + if (p.InMentalState) + { + return false; + } + if (p.IsMutant && p.mutant.Def.overrideInspectString) + { + return false; + } + return true; + } + + public static bool ShouldDisplayLordReport(Pawn pawn) + { + if (ShouldShowCultistLordReport(pawn)) + { + return true; + } + return ShouldShowActionReportToPlayer(pawn); + } + + public static bool ShouldDisplayJobReport(Pawn pawn) + { + if (pawn.IsMutant && pawn.mutant.Def.overrideInspectString) + { + return false; + } + if (pawn.CurJobDef != null && pawn.CurJobDef.alwaysShowReport) + { + return true; + } + if (ModsConfig.AnomalyActive && pawn.Faction == Faction.OfHoraxCult && pawn.CurJobDef == JobDefOf.HateChanting) + { + return true; + } + if (ShouldShowCultistLordReport(pawn)) + { + return true; + } + return ShouldShowActionReportToPlayer(pawn); + } + + private static bool ShouldShowActionReportToPlayer(Pawn p) + { + if (p.Faction != Faction.OfPlayer && p.HostFaction != Faction.OfPlayer) + { + return false; + } + if (p.InMentalState) + { + return false; + } + if (p.IsMutant && p.mutant.Def.overrideInspectString) + { + return false; + } + return true; + } + + public static bool ShouldDisplayFactionInInspectString(Pawn p) + { + if (p.IsMutant && p.mutant.Def.overrideInspectString) + { + return false; + } + return true; + } + + private static bool ShouldShowCultistLordReport(Pawn pawn) + { + if (ModsConfig.AnomalyActive && pawn.Faction == Faction.OfHoraxCult && pawn.mindState.duty?.def == DutyDefOf.Invoke) + { + return true; + } + return false; + } + + public static bool ShouldSendNotificationAbout(Pawn p) + { + if (Current.ProgramState != ProgramState.Playing) + { + return false; + } + if (p == null) + { + return false; + } + if (PawnGenerator.IsBeingGenerated(p)) + { + return false; + } + if (p.IsWorldPawn() && (!p.IsCaravanMember() || !p.GetCaravan().IsPlayerControlled) && !IsTravelingInTransportPodWorldObject(p) && !p.IsBorrowedByAnyFaction() && p.Corpse.DestroyedOrNull()) + { + return false; + } + if (p.IsSubhuman) + { + return false; + } + if (ModsConfig.AnomalyActive && p.Corpse is UnnaturalCorpse) + { + return false; + } + if (p.Faction != Faction.OfPlayer) + { + if (p.HostFaction != Faction.OfPlayer) + { + return false; + } + if (p.RaceProps.Humanlike && p.guest.Released && !p.Downed && !p.InBed()) + { + return false; + } + if (p.CurJob != null && p.CurJob.exitMapOnArrival && !PrisonBreakUtility.IsPrisonBreaking(p)) + { + return false; + } + if (IsExitingMap(p)) + { + return false; + } + } + return true; + } + + public static bool ShouldGetThoughtAbout(Pawn pawn, Pawn subject) + { + if (pawn.IsSubhuman || subject.IsSubhuman) + { + return false; + } + if (pawn.Faction != subject.Faction) + { + if (!subject.IsWorldPawn()) + { + return !pawn.IsWorldPawn(); + } + return false; + } + return true; + } + + public static bool IsTeetotaler(this Pawn pawn) + { + if (!new HistoryEvent(HistoryEventDefOf.IngestedDrug, pawn.Named(HistoryEventArgsNames.Doer)).DoerWillingToDo()) + { + return true; + } + if (!new HistoryEvent(HistoryEventDefOf.IngestedRecreationalDrug, pawn.Named(HistoryEventArgsNames.Doer)).DoerWillingToDo()) + { + return true; + } + if (pawn.story != null) + { + return pawn.story.traits.DegreeOfTrait(TraitDefOf.DrugDesire) < 0; + } + return false; + } + + public static bool CanTakeDrug(this Pawn pawn, ThingDef drug) + { + CompProperties_Drug compProperties = drug.GetCompProperties(); + if (compProperties == null) + { + return true; + } + if (CanTakeDrugForDependency(pawn, drug)) + { + return true; + } + if (!compProperties.teetotalerCanConsume && pawn.IsTeetotaler()) + { + return false; + } + if (ModsConfig.IdeologyActive) + { + if (!IdeoUtility.DoerWillingToDo(HistoryEventDefOf.IngestedDrug, pawn)) + { + return false; + } + if (drug.IsNonMedicalDrug && !IdeoUtility.DoerWillingToDo(HistoryEventDefOf.IngestedRecreationalDrug, pawn)) + { + return false; + } + if (drug.ingestible != null && drug.ingestible.drugCategory == DrugCategory.Hard && !IdeoUtility.DoerWillingToDo(HistoryEventDefOf.IngestedHardDrug, pawn)) + { + return false; + } + } + return true; + } + + public static bool CanTakeDrugForDependency(Pawn pawn, ThingDef drug) + { + if (!ModsConfig.BiotechActive || pawn.genes == null) + { + return false; + } + CompProperties_Drug compProperties = drug.GetCompProperties(); + if (compProperties == null) + { + return true; + } + foreach (Gene item in pawn.genes.GenesListForReading) + { + if (item is Gene_ChemicalDependency gene_ChemicalDependency && item.Active && gene_ChemicalDependency.def.chemical == compProperties.chemical) + { + return true; + } + } + return false; + } + + public static bool TryGetChemicalDependencyGene(Pawn pawn, out Gene_ChemicalDependency gene) + { + gene = null; + if (!ModsConfig.BiotechActive || pawn.genes == null) + { + return false; + } + foreach (Gene item in pawn.genes.GenesListForReading) + { + if (item is Gene_ChemicalDependency gene_ChemicalDependency) + { + gene = gene_ChemicalDependency; + return true; + } + } + return false; + } + + public static bool PawnWouldBeUnhappyTakingDrug(this Pawn pawn, ThingDef drug) + { + if (pawn.IsTeetotaler()) + { + return drug.GetCompProperties() != null; + } + return false; + } + + public static bool IsProsthophobe(this Pawn pawn) + { + if (pawn.story != null) + { + return pawn.story.traits.HasTrait(TraitDefOf.BodyPurist); + } + return false; + } + + public static bool IsPrisonerInPrisonCell(this Pawn pawn) + { + if (pawn.IsPrisoner && pawn.Spawned) + { + return pawn.Position.IsInPrisonCell(pawn.Map); + } + return false; + } + + public static bool IsBeingArrested(Pawn pawn) + { + if (pawn.Map == null) + { + return false; + } + foreach (Pawn item in pawn.Map.mapPawns.AllPawnsSpawned) + { + if (item != pawn && item.CurJobDef == JobDefOf.Arrest && item.CurJob.AnyTargetIs(pawn)) + { + return true; + } + } + return false; + } + + public static string PawnKindsToCommaList(IEnumerable pawns, bool useAnd = false) + { + tmpPawns.Clear(); + tmpPawns.AddRange(pawns); + if (tmpPawns.Count >= 2) + { + tmpPawns.SortBy((Pawn x) => !x.RaceProps.Humanlike, (Pawn x) => x.GetKindLabelPlural()); + } + tmpAddedPawnKinds.Clear(); + tmpPawnKindsStr.Clear(); + for (int i = 0; i < tmpPawns.Count; i++) + { + if (tmpAddedPawnKinds.Contains(tmpPawns[i].kindDef)) + { + continue; + } + tmpAddedPawnKinds.Add(tmpPawns[i].kindDef); + int num = 0; + for (int j = 0; j < tmpPawns.Count; j++) + { + if (tmpPawns[j].kindDef == tmpPawns[i].kindDef) + { + num++; + } + } + if (num == 1) + { + tmpPawnKindsStr.Add("1 " + tmpPawns[i].KindLabel); + } + else + { + tmpPawnKindsStr.Add(num + " " + tmpPawns[i].GetKindLabelPlural(num)); + } + } + tmpPawns.Clear(); + return tmpPawnKindsStr.ToCommaList(useAnd); + } + + public static List PawnKindsToList(IEnumerable pawnKinds) + { + tmpPawnKinds.Clear(); + tmpPawnKinds.AddRange(pawnKinds); + if (tmpPawnKinds.Count >= 2) + { + tmpPawnKinds.SortBy((PawnKindDef x) => !x.RaceProps.Humanlike, (PawnKindDef x) => GenLabel.BestKindLabel(x, Gender.None, plural: true)); + } + tmpAddedPawnKinds.Clear(); + tmpPawnKindsStr.Clear(); + for (int i = 0; i < tmpPawnKinds.Count; i++) + { + if (tmpAddedPawnKinds.Contains(tmpPawnKinds[i])) + { + continue; + } + tmpAddedPawnKinds.Add(tmpPawnKinds[i]); + int num = 0; + for (int j = 0; j < tmpPawnKinds.Count; j++) + { + if (tmpPawnKinds[j] == tmpPawnKinds[i]) + { + num++; + } + } + if (num == 1) + { + tmpPawnKindsStr.Add("1 " + GenLabel.BestKindLabel(tmpPawnKinds[i], Gender.None)); + } + else + { + tmpPawnKindsStr.Add(num + " " + GenLabel.BestKindLabel(tmpPawnKinds[i], Gender.None, plural: true, num)); + } + } + return tmpPawnKindsStr; + } + + public static string PawnKindsToLineList(IEnumerable pawnKinds, string prefix) + { + PawnKindsToList(pawnKinds); + return tmpPawnKindsStr.ToLineList(prefix); + } + + public static string PawnKindsToLineList(IEnumerable pawnKinds, string prefix, Color color) + { + PawnKindsToList(pawnKinds); + for (int i = 0; i < tmpPawnKindsStr.Count; i++) + { + tmpPawnKindsStr[i] = tmpPawnKindsStr[i].Colorize(color); + } + return tmpPawnKindsStr.ToLineList(prefix); + } + + public static string PawnKindsToCommaList(IEnumerable pawnKinds, bool useAnd = false) + { + PawnKindsToList(pawnKinds); + return tmpPawnKindsStr.ToCommaList(useAnd); + } + + public static LocomotionUrgency ResolveLocomotion(Pawn pawn, LocomotionUrgency secondPriority) + { + if (!pawn.Dead && pawn.mindState.duty != null && pawn.mindState.duty.locomotion != 0) + { + return pawn.mindState.duty.locomotion; + } + return secondPriority; + } + + public static LocomotionUrgency ResolveLocomotion(Pawn pawn, LocomotionUrgency secondPriority, LocomotionUrgency thirdPriority) + { + LocomotionUrgency locomotionUrgency = ResolveLocomotion(pawn, secondPriority); + if (locomotionUrgency != 0) + { + return locomotionUrgency; + } + return thirdPriority; + } + + public static Danger ResolveMaxDanger(Pawn pawn, Danger secondPriority) + { + if (!pawn.Dead && pawn.mindState.duty != null && pawn.mindState.duty.maxDanger != 0) + { + return pawn.mindState.duty.maxDanger; + } + return secondPriority; + } + + public static Danger ResolveMaxDanger(Pawn pawn, Danger secondPriority, Danger thirdPriority) + { + Danger danger = ResolveMaxDanger(pawn, secondPriority); + if (danger != 0) + { + return danger; + } + return thirdPriority; + } + + public static bool IsPermanentCombatant(this Pawn pawn) + { + if (pawn?.mindState == null) + { + return true; + } + if (pawn.IsAnimal && pawn.Faction != null) + { + return false; + } + if (pawn.DevelopmentalStage.Juvenile()) + { + return false; + } + return true; + } + + public static bool IsCombatant(this Pawn pawn) + { + if (pawn.IsPermanentCombatant()) + { + return true; + } + return pawn.mindState.CombatantRecently; + } + + public static bool IsFighting(this Pawn pawn) + { + if (pawn.CurJob != null) + { + if (pawn.CurJob.def != JobDefOf.AttackMelee && pawn.CurJob.def != JobDefOf.AttackStatic && pawn.CurJob.def != JobDefOf.Wait_Combat && pawn.CurJob.def != JobDefOf.PredatorHunt) + { + return pawn.CurJob.def == JobDefOf.ManTurret; + } + return true; + } + return false; + } + + public static bool IsAttacking(this Pawn pawn) + { + if (pawn.CurJobDef == JobDefOf.AttackMelee || pawn.CurJobDef == JobDefOf.AttackStatic) + { + return true; + } + if (pawn.CurJobDef == JobDefOf.Wait_Combat && pawn.stances.curStance is Stance_Busy stance_Busy && stance_Busy.focusTarg.IsValid) + { + return true; + } + return false; + } + + public static Hediff_Psylink GetMainPsylinkSource(this Pawn pawn) + { + return (Hediff_Psylink)pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.PsychicAmplifier); + } + + public static int GetPsylinkLevel(this Pawn pawn) + { + int num = 0; + foreach (Hediff hediff in pawn.health.hediffSet.hediffs) + { + if (hediff is Hediff_Psylink hediff_Psylink) + { + num += hediff_Psylink.level; + } + } + return num; + } + + public static int GetMaxPsylinkLevel(this Pawn pawn) + { + return (int)HediffDefOf.PsychicAmplifier.maxSeverity; + } + + public static RoyalTitle GetMaxPsylinkLevelTitle(this Pawn pawn) + { + if (pawn.royalty == null) + { + return null; + } + int num = 0; + RoyalTitle result = null; + foreach (RoyalTitle item in pawn.royalty.AllTitlesInEffectForReading) + { + if (num < item.def.maxPsylinkLevel) + { + num = item.def.maxPsylinkLevel; + result = item; + } + } + return result; + } + + public static int GetMaxPsylinkLevelByTitle(this Pawn pawn) + { + return pawn.GetMaxPsylinkLevelTitle()?.def.maxPsylinkLevel ?? 0; + } + + public static void ChangePsylinkLevel(this Pawn pawn, int levelOffset, bool sendLetter = true) + { + Hediff_Psylink mainPsylinkSource = pawn.GetMainPsylinkSource(); + if (mainPsylinkSource == null) + { + mainPsylinkSource = (Hediff_Psylink)HediffMaker.MakeHediff(HediffDefOf.PsychicAmplifier, pawn); + try + { + mainPsylinkSource.suppressPostAddLetter = !sendLetter; + pawn.health.AddHediff(mainPsylinkSource, pawn.health.hediffSet.GetBrain()); + return; + } + finally + { + mainPsylinkSource.suppressPostAddLetter = false; + } + } + mainPsylinkSource.ChangeLevel(levelOffset, sendLetter); + } + + public static void GiveAllStartingPlayerPawnsThought(ThoughtDef thought) + { + foreach (Pawn startingAndOptionalPawn in Find.GameInitData.startingAndOptionalPawns) + { + if (startingAndOptionalPawn.needs.mood == null) + { + continue; + } + if (thought.IsSocial) + { + foreach (Pawn startingAndOptionalPawn2 in Find.GameInitData.startingAndOptionalPawns) + { + if (startingAndOptionalPawn2 != startingAndOptionalPawn) + { + startingAndOptionalPawn.needs.mood.thoughts.memories.TryGainMemory(thought, startingAndOptionalPawn2); + } + } + } + else + { + startingAndOptionalPawn.needs.mood.thoughts.memories.TryGainMemory(thought); + } + } + } + + public static IntVec3 DutyLocation(this Pawn pawn) + { + Pawn_RopeTracker roping = pawn.roping; + if (roping != null && roping.IsRopedToSpot) + { + return pawn.roping.RopedToSpot; + } + if (pawn.mindState.duty != null && pawn.mindState.duty.focus.IsValid) + { + return pawn.mindState.duty.focus.Cell; + } + return pawn.Position; + } + + public static bool EverBeenColonistOrTameAnimal(Pawn pawn) + { + return pawn.records.GetAsInt(RecordDefOf.TimeAsColonistOrColonyAnimal) > 0; + } + + public static bool EverBeenPrisoner(Pawn pawn) + { + return pawn.records.GetAsInt(RecordDefOf.TimeAsPrisoner) > 0; + } + + public static bool EverBeenQuestLodger(Pawn pawn) + { + return pawn.records.GetAsInt(RecordDefOf.TimeAsQuestLodger) > 0; + } + + public static void RecoverFromUnwalkablePositionOrKill(IntVec3 c, Map map) + { + if (!c.InBounds(map) || c.Walkable(map)) + { + return; + } + tmpThings.Clear(); + tmpThings.AddRange(c.GetThingList(map)); + for (int i = 0; i < tmpThings.Count; i++) + { + if (!(tmpThings[i] is Pawn pawn)) + { + continue; + } + if (CellFinder.TryFindBestPawnStandCell(pawn, out var cell)) + { + pawn.Position = cell; + pawn.Notify_Teleported(endCurrentJob: true, resetTweenedPos: false); + continue; + } + DamageInfo damageInfo = new DamageInfo(DamageDefOf.Crush, 99999f, 999f, -1f, null, pawn.health.hediffSet.GetBrain(), null, DamageInfo.SourceCategory.Collapse); + damageInfo.SetIgnoreInstantKillProtection(ignore: true); + pawn.TakeDamage(damageInfo); + if (!pawn.Dead) + { + pawn.Kill(damageInfo); + } + } + } + + public static float GetManhunterOnDamageChance(Pawn pawn, Thing instigator = null, float distance = -1f) + { + float num = GetManhunterOnDamageChance(pawn.def); + if (pawn.health.hediffSet.HasHediff(HediffDefOf.Scaria)) + { + num += 0.5f; + } + if (instigator != null) + { + num *= GenMath.LerpDoubleClamped(1f, 30f, 3f, 1f, distance); + num *= 1f - instigator.GetStatValue(StatDefOf.HuntingStealth); + if (instigator is Pawn instigator2) + { + num *= GetManhunterChanceFactorForInstigator(instigator2); + } + } + return Mathf.Clamp01(num); + } + + public static float GetManhunterOnDamageChance(ThingDef def) + { + return def.race.manhunterOnDamageChance * Find.Storyteller.difficulty.manhunterChanceOnDamageFactor; + } + + public static string GetManhunterOnDamageChanceExplanation(ThingDef def, Pawn pawn) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.AppendLine("HarmedRevengeChanceExplanation".Translate()); + stringBuilder.AppendLine(); + stringBuilder.AppendLine(def.LabelCap + ": " + def.race.manhunterOnDamageChance.ToStringPercent()); + stringBuilder.AppendLine("StatsReport_DifficultyMultiplier".Translate(Find.Storyteller.difficultyDef.label) + ": " + Find.Storyteller.difficulty.manhunterChanceOnDamageFactor.ToStringPercent()); + if (pawn != null && pawn.health.hediffSet.HasHediff(HediffDefOf.Scaria)) + { + stringBuilder.AppendLine(HediffDefOf.Scaria.LabelCap + ": " + 0.5f.ToStringPercentSigned()); + } + stringBuilder.AppendLine(); + float f = ((pawn == null) ? GetManhunterOnDamageChance(def) : GetManhunterOnDamageChance(pawn)); + stringBuilder.AppendLine("StatsReport_FinalValue".Translate() + ": " + f.ToStringPercent()); + return stringBuilder.ToString(); + } + + public static float GetManhunterChanceFactorForInstigator(Pawn instigator) + { + if (ModsConfig.AnomalyActive && instigator?.Faction == Faction.OfEntities) + { + return 0f; + } + float num = 1f; + if (ModsConfig.IdeologyActive && instigator?.Ideo != null) + { + RoleEffect roleEffect = instigator.Ideo.GetRole(instigator)?.def.roleEffects?.FirstOrDefault((RoleEffect eff) => eff is RoleEffect_HuntingRevengeChanceFactor); + if (roleEffect != null) + { + num *= ((RoleEffect_HuntingRevengeChanceFactor)roleEffect).factor; + } + } + return num; + } + + public static float GetManhunterOnTameFailChance(Pawn pawn) + { + return Mathf.Clamp01(GetManhunterOnTameFailChance(pawn.def)); + } + + public static float GetManhunterOnTameFailChance(ThingDef def) + { + return def.race.manhunterOnTameFailChance; + } + + public static string GetManhunterOnTameFailChanceExplanation(ThingDef def, Pawn pawn) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.AppendLine("Stat_Race_Animal_TameFailedRevengeChance_Desc".Translate()); + stringBuilder.AppendLine(); + stringBuilder.AppendLine(def.LabelCap + ": " + def.race.manhunterOnTameFailChance.ToStringPercent()); + stringBuilder.AppendLine(); + float f = ((pawn == null) ? GetManhunterOnTameFailChance(def) : GetManhunterOnTameFailChance(pawn)); + stringBuilder.AppendLine("StatsReport_FinalValue".Translate() + ": " + f.ToStringPercent()); + return stringBuilder.ToString(); + } + + public static MentalStateDef ManhunterStateFor(Pawn pawn) + { + if (pawn.health.hediffSet.HasHediff(HediffDefOf.Scaria)) + { + return MentalStateDefOf.ManhunterPermanent; + } + return MentalStateDefOf.Manhunter; + } + + public static bool PlayerHasReproductivePair(PawnKindDef pawnKindDef) + { + if (!pawnKindDef.RaceProps.Animal) + { + return false; + } + List allMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction = PawnsFinder.AllMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction; + bool flag = false; + bool flag2 = false; + for (int i = 0; i < allMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction.Count; i++) + { + Pawn pawn = allMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction[i]; + if (pawn.kindDef == pawnKindDef && pawn.ageTracker.CurLifeStage.reproductive) + { + if (pawn.gender == Gender.Male) + { + flag = true; + } + else if (pawn.gender == Gender.Female) + { + flag2 = true; + } + if (flag && flag2) + { + return true; + } + } + } + return false; + } + + public static float PlayerAnimalBodySizePerCapita() + { + float num = 0f; + int num2 = 0; + List allMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction = PawnsFinder.AllMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction; + for (int i = 0; i < allMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction.Count; i++) + { + Pawn pawn = allMapsCaravansAndTravellingTransporters_Alive_OfPlayerFaction[i]; + if (pawn.IsFreeColonist && !pawn.IsQuestLodger()) + { + num2++; + } + if (pawn.IsAnimal) + { + num += pawn.BodySize; + } + } + if (num2 <= 0) + { + return 0f; + } + return num / (float)num2; + } + + private static List PawnsOfFactionOnMapOrInCaravan(Pawn pawn) + { + if (pawn.Spawned) + { + return pawn.Map.mapPawns.SpawnedPawnsInFaction(pawn.Faction); + } + return pawn.GetCaravan()?.PawnsListForReading; + } + + public static float PlayerVeneratedAnimalBodySizePerCapitaOnMapOrCaravan(Pawn pawn) + { + if (pawn.Ideo == null || pawn.Faction == null) + { + return 0f; + } + float num = 0f; + int num2 = 0; + List list = PawnsOfFactionOnMapOrInCaravan(pawn); + for (int i = 0; i < list.Count; i++) + { + if (list[i].Faction == pawn.Faction && !pawn.IsQuestLodger()) + { + if (list[i].IsAnimal && pawn.Ideo.IsVeneratedAnimal(list[i])) + { + num += list[i].BodySize; + } + else if (list[i].RaceProps.Humanlike) + { + num2++; + } + } + } + return Mathf.Round(((num2 > 0) ? (num / (float)num2) : 0f) * 100f) / 100f; + } + + public static Pawn FirstVeneratedAnimalOnMapOrCaravan(Pawn pawn) + { + if (pawn.Ideo == null || pawn.Faction == null) + { + return null; + } + List list = PawnsOfFactionOnMapOrInCaravan(pawn); + for (int i = 0; i < list.Count; i++) + { + if (pawn.Faction == list[i].Faction && pawn.Ideo.IsVeneratedAnimal(list[i])) + { + return list[i]; + } + } + return null; + } + + public static bool HasClothingNotRequiredByKind(Pawn p) + { + if (p.apparel == null) + { + return false; + } + List wornApparel = p.apparel.WornApparel; + if (wornApparel.Count > 0 && p.kindDef.apparelRequired.NullOrEmpty()) + { + return true; + } + for (int i = 0; i < wornApparel.Count; i++) + { + Apparel apparel = wornApparel[i]; + if (apparel.def.apparel.countsAsClothingForNudity && !p.kindDef.apparelRequired.Contains(apparel.def)) + { + return true; + } + } + return false; + } + + public static IEnumerable GetCombatPawnKindsForPoints(Func selector, float points, Func selectionWeight = null) + { + IEnumerable allKinds = DefDatabase.AllDefsListForReading.Where(selector); + if (selectionWeight == null) + { + selectionWeight = (PawnKindDef _) => 1f; + } + PawnKindDef result; + while (points > 0f && allKinds.Where((PawnKindDef def) => def.combatPower > 0f && def.combatPower <= points && def.appearsRandomlyInCombatGroups).TryRandomElementByWeight(selectionWeight, out result)) + { + points -= result.combatPower; + yield return result; + } + } + + public static int GetMaxAllowedToPickUp(Pawn pawn, ThingDef thingDef) + { + int maxAllowedToPickUp = GetMaxAllowedToPickUp(thingDef, pawn.Map); + if (maxAllowedToPickUp <= 0) + { + return 0; + } + int num = pawn.inventory.Count((Thing t) => t.def.orderedTakeGroup == thingDef.orderedTakeGroup); + return Math.Max(maxAllowedToPickUp - num, 0); + } + + public static int GetMaxAllowedToPickUp(ThingDef thingDef, Map map = null) + { + if (map != null && !map.IsPlayerHome) + { + return int.MaxValue; + } + if (thingDef.orderedTakeGroup == null) + { + return 0; + } + return thingDef.orderedTakeGroup.max; + } + + public static bool CanPickUp(Pawn pawn, ThingDef thingDef) + { + if (!pawn.Map.IsPlayerHome) + { + return true; + } + if (pawn.inventory != null && thingDef.orderedTakeGroup != null) + { + return thingDef.orderedTakeGroup.max > 0; + } + return false; + } + + public static bool ShouldBeSlaughtered(this Pawn pawn) + { + if (!pawn.Spawned || !pawn.IsAnimal) + { + return false; + } + if (pawn.Map.designationManager.DesignationOn(pawn, DesignationDefOf.Slaughter) != null || pawn.Map.autoSlaughterManager.AnimalsToSlaughter.Contains(pawn)) + { + return pawn.Map.designationManager.DesignationOn(pawn, DesignationDefOf.ReleaseAnimalToWild) == null; + } + return false; + } + + public static bool CanBeBuried(this Thing t) + { + if (t is Corpse { MapHeld: not null } corpse) + { + return corpse.MapHeld.designationManager.DesignationOn(corpse, DesignationDefOf.ExtractSkull) == null; + } + return true; + } + + public static bool PawnHadFuneral(Pawn pawn) + { + Precept_Ritual precept_Ritual = (Precept_Ritual)(pawn.ideo?.Ideo?.GetPrecept(PreceptDefOf.Funeral)); + if (precept_Ritual != null && !precept_Ritual.completedObligations.NullOrEmpty()) + { + return precept_Ritual.completedObligations.Any((RitualObligation o) => o.FirstValidTarget.Thing == pawn); + } + return false; + } + + public static bool IsBiologicallyOrArtificiallyBlind(Pawn pawn) + { + if (!IsBiologicallyBlind(pawn)) + { + return IsArtificiallyBlind(pawn); + } + return true; + } + + public static bool IsBiologicallyBlind(Pawn pawn) + { + return !pawn.health.capacities.CapableOf(PawnCapacityDefOf.Sight); + } + + public static bool IsArtificiallyBlind(Pawn p) + { + if (IsBiologicallyBlind(p)) + { + return false; + } + if (p.apparel != null) + { + foreach (Apparel item in p.apparel.WornApparel) + { + if (item.def.apparel.blocksVision) + { + return true; + } + } + } + return false; + } + + public static bool IsWorkTypeDisabledByAge(this Pawn pawn, WorkTypeDef workType, out int minAgeRequired) + { + for (int i = 0; i < pawn.RaceProps.lifeStageWorkSettings.Count; i++) + { + LifeStageWorkSettings lifeStageWorkSettings = pawn.RaceProps.lifeStageWorkSettings[i]; + if (lifeStageWorkSettings.workType == workType && lifeStageWorkSettings.IsDisabled(pawn)) + { + minAgeRequired = lifeStageWorkSettings.minAge; + return true; + } + } + minAgeRequired = 0; + return false; + } + + public static bool DutyActiveWhenDown(this Pawn pawn, bool onlyInBed = false) + { + if (onlyInBed && !pawn.InBed()) + { + return false; + } + return (pawn.GetLord()?.LordJob?.DutyActiveWhenDown(pawn)).GetValueOrDefault(); + } + + public static bool IsExitingMap(Pawn pawn) + { + Lord lord = pawn.GetLord(); + if (lord == null) + { + return false; + } + if (!(lord.LordJob is LordJob_ExitMapBest) && !(lord.LordJob is LordJob_ExitMapNear) && !(lord.LordJob is LordJob_ExitOnShuttle)) + { + return lord.LordJob is LordJob_TravelAndExit; + } + return true; + } + + public static void ForceEjectFromContainer(Pawn pawn) + { + Thing resultingThing; + if (pawn.ParentHolder is Pawn_CarryTracker pawn_CarryTracker) + { + pawn_CarryTracker.TryDropCarriedThing(pawn_CarryTracker.pawn.Position, ThingPlaceMode.Near, out resultingThing); + pawn_CarryTracker.pawn.jobs.EndCurrentJob(JobCondition.InterruptForced); + } + if (pawn.ParentHolder is Building_Enterable building_Enterable) + { + building_Enterable.innerContainer.TryDrop(pawn, building_Enterable.InteractionCell, building_Enterable.Map, ThingPlaceMode.Near, out resultingThing); + } + if (pawn.ParentHolder is Building_Casket building_Casket) + { + building_Casket.EjectContents(); + } + if (pawn.ParentHolder is Building_HoldingPlatform building_HoldingPlatform) + { + building_HoldingPlatform.EjectContents(); + } + if (pawn.ParentHolder is CompBiosculpterPod compBiosculpterPod) + { + compBiosculpterPod.EjectContents(interrupted: true, playSounds: true); + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/Projectile-TickInterval-Verse.txt b/MCP/vector_cache/Projectile-TickInterval-Verse.txt new file mode 100644 index 00000000..d02770d8 --- /dev/null +++ b/MCP/vector_cache/Projectile-TickInterval-Verse.txt @@ -0,0 +1,655 @@ +根据向量相似度分析,与 'TickInterval, Projectile, Verse' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\Projectile.txt` + +```csharp +public abstract class Projectile : ThingWithComps +{ + private static readonly Material shadowMaterial = MaterialPool.MatFrom("Things/Skyfaller/SkyfallerShadowCircle", ShaderDatabase.Transparent); + + protected Vector3 origin; + + protected Vector3 destination; + + public LocalTargetInfo usedTarget; + + public LocalTargetInfo intendedTarget; + + protected Thing equipment; + + protected ThingDef equipmentDef; + + protected Thing launcher; + + protected ThingDef targetCoverDef; + + private ProjectileHitFlags desiredHitFlags = ProjectileHitFlags.All; + + protected bool preventFriendlyFire; + + protected int lifetime; + + protected QualityCategory equipmentQuality = QualityCategory.Normal; + + public float stoppingPower; + + public DamageDef damageDefOverride; + + public List extraDamages = new List(); + + protected bool landed; + + protected int ticksToImpact; + + private Sustainer ambientSustainer; + + private static List checkedCells = new List(); + + public DamageDef DamageDef => damageDefOverride ?? def.projectile.damageDef; + + public IEnumerable ExtraDamages + { + get + { + List first = extraDamages; + IEnumerable enumerable = def.projectile.extraDamages; + return first.Concat(enumerable ?? Enumerable.Empty()); + } + } + + public ProjectileHitFlags HitFlags + { + get + { + if (def.projectile.alwaysFreeIntercept) + { + return ProjectileHitFlags.All; + } + if (def.projectile.flyOverhead) + { + return ProjectileHitFlags.None; + } + return desiredHitFlags; + } + set + { + desiredHitFlags = value; + } + } + + protected float StartingTicksToImpact + { + get + { + float num = (origin - destination).magnitude / def.projectile.SpeedTilesPerTick; + if (num <= 0f) + { + num = 0.001f; + } + return num; + } + } + + protected IntVec3 DestinationCell => new IntVec3(destination); + + public virtual Vector3 ExactPosition + { + get + { + Vector3 vector = (destination - origin).Yto0() * DistanceCoveredFraction; + return origin.Yto0() + vector + Vector3.up * def.Altitude; + } + } + + protected float DistanceCoveredFraction => Mathf.Clamp01(1f - (float)ticksToImpact / StartingTicksToImpact); + + protected float DistanceCoveredFractionArc => Mathf.Clamp01(1f - (float)(landed ? lifetime : ticksToImpact) / StartingTicksToImpact); + + public virtual Quaternion ExactRotation => Quaternion.LookRotation((destination - origin).Yto0()); + + public virtual bool AnimalsFleeImpact => false; + + public override Vector3 DrawPos => ExactPosition; + + public virtual Material DrawMat => def.graphic.MatSingleFor(this); + + public virtual int DamageAmount => def.projectile.GetDamageAmount(equipment); + + public virtual float ArmorPenetration => def.projectile.GetArmorPenetration(equipment); + + public ThingDef EquipmentDef => equipmentDef; + + public Thing Launcher => launcher; + + public override int UpdateRateTicks + { + get + { + if (base.Spawned && Find.CurrentMap == base.Map && Find.CameraDriver.InViewOf(this)) + { + return 1; + } + return 15; + } + } + + private float ArcHeightFactor + { + get + { + float num = def.projectile.arcHeightFactor; + float num2 = (destination - origin).MagnitudeHorizontalSquared(); + if (num * num > num2 * 0.2f * 0.2f) + { + num = Mathf.Sqrt(num2) * 0.2f; + } + return num; + } + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref origin, "origin"); + Scribe_Values.Look(ref destination, "destination"); + Scribe_Values.Look(ref ticksToImpact, "ticksToImpact", 0); + Scribe_TargetInfo.Look(ref usedTarget, "usedTarget"); + Scribe_TargetInfo.Look(ref intendedTarget, "intendedTarget"); + Scribe_References.Look(ref launcher, "launcher"); + Scribe_References.Look(ref equipment, "equipment"); + Scribe_Defs.Look(ref equipmentDef, "equipmentDef"); + Scribe_Defs.Look(ref targetCoverDef, "targetCoverDef"); + Scribe_Values.Look(ref desiredHitFlags, "desiredHitFlags", ProjectileHitFlags.All); + Scribe_Values.Look(ref preventFriendlyFire, "preventFriendlyFire", defaultValue: false); + Scribe_Values.Look(ref landed, "landed", defaultValue: false); + Scribe_Values.Look(ref lifetime, "lifetime", 0); + Scribe_Values.Look(ref equipmentQuality, "equipmentQuality", QualityCategory.Normal); + } + + public void Launch(Thing launcher, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, bool preventFriendlyFire = false, Thing equipment = null) + { + Launch(launcher, base.Position.ToVector3Shifted(), usedTarget, intendedTarget, hitFlags, preventFriendlyFire, equipment); + } + + public virtual void Launch(Thing launcher, Vector3 origin, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, bool preventFriendlyFire = false, Thing equipment = null, ThingDef targetCoverDef = null) + { + this.launcher = launcher; + this.origin = origin; + this.usedTarget = usedTarget; + this.intendedTarget = intendedTarget; + this.targetCoverDef = targetCoverDef; + this.preventFriendlyFire = preventFriendlyFire; + HitFlags = hitFlags; + stoppingPower = def.projectile.stoppingPower; + if (stoppingPower == 0f && def.projectile.damageDef != null) + { + stoppingPower = def.projectile.damageDef.defaultStoppingPower; + } + if (equipment != null) + { + this.equipment = equipment; + equipmentDef = equipment.def; + equipment.TryGetQuality(out equipmentQuality); + if (equipment.TryGetComp(out CompUniqueWeapon comp)) + { + foreach (WeaponTraitDef item in comp.TraitsListForReading) + { + if (!Mathf.Approximately(item.additionalStoppingPower, 0f)) + { + stoppingPower += item.additionalStoppingPower; + } + } + } + } + else + { + equipmentDef = null; + } + destination = usedTarget.Cell.ToVector3Shifted() + Gen.RandomHorizontalVector(0.3f); + ticksToImpact = Mathf.CeilToInt(StartingTicksToImpact); + if (ticksToImpact < 1) + { + ticksToImpact = 1; + } + lifetime = ticksToImpact; + if (!def.projectile.soundAmbient.NullOrUndefined()) + { + ambientSustainer = def.projectile.soundAmbient.TrySpawnSustainer(SoundInfo.InMap(this, MaintenanceType.PerTick)); + } + } + + protected override void Tick() + { + base.Tick(); + if (ticksToImpact == 60 && Find.TickManager.CurTimeSpeed == TimeSpeed.Normal && def.projectile.soundImpactAnticipate != null) + { + def.projectile.soundImpactAnticipate.PlayOneShot(this); + } + if (ambientSustainer != null) + { + ambientSustainer.Maintain(); + } + } + + protected override void TickInterval(int delta) + { + base.TickInterval(delta); + lifetime -= delta; + if (landed) + { + return; + } + Vector3 exactPosition = ExactPosition; + ticksToImpact -= delta; + if (!ExactPosition.InBounds(base.Map)) + { + ticksToImpact += delta; + base.Position = ExactPosition.ToIntVec3(); + Destroy(); + return; + } + Vector3 exactPosition2 = ExactPosition; + if (CheckForFreeInterceptBetween(exactPosition, exactPosition2)) + { + return; + } + base.Position = ExactPosition.ToIntVec3(); + if (ticksToImpact <= 0) + { + if (DestinationCell.InBounds(base.Map)) + { + base.Position = DestinationCell; + } + ImpactSomething(); + } + } + + private bool CheckForFreeInterceptBetween(Vector3 lastExactPos, Vector3 newExactPos) + { + if (lastExactPos == newExactPos) + { + return false; + } + List list = base.Map.listerThings.ThingsInGroup(ThingRequestGroup.ProjectileInterceptor); + for (int i = 0; i < list.Count; i++) + { + if (list[i].TryGetComp().CheckIntercept(this, lastExactPos, newExactPos)) + { + Impact(null, blockedByShield: true); + return true; + } + } + IntVec3 intVec = lastExactPos.ToIntVec3(); + IntVec3 intVec2 = newExactPos.ToIntVec3(); + if (intVec2 == intVec) + { + return false; + } + if (!intVec.InBounds(base.Map) || !intVec2.InBounds(base.Map)) + { + return false; + } + if (intVec2.AdjacentToCardinal(intVec)) + { + return CheckForFreeIntercept(intVec2); + } + if (VerbUtility.InterceptChanceFactorFromDistance(origin, intVec2) <= 0f) + { + return false; + } + Vector3 vect = lastExactPos; + Vector3 v = newExactPos - lastExactPos; + Vector3 vector = v.normalized * 0.2f; + int num = (int)(v.MagnitudeHorizontal() / 0.2f); + checkedCells.Clear(); + int num2 = 0; + IntVec3 intVec3; + do + { + vect += vector; + intVec3 = vect.ToIntVec3(); + if (!checkedCells.Contains(intVec3)) + { + if (CheckForFreeIntercept(intVec3)) + { + return true; + } + checkedCells.Add(intVec3); + } + num2++; + if (num2 > num) + { + return false; + } + } + while (!(intVec3 == intVec2)); + return false; + } + + private bool CheckForFreeIntercept(IntVec3 c) + { + if (destination.ToIntVec3() == c) + { + return false; + } + float num = VerbUtility.InterceptChanceFactorFromDistance(origin, c); + if (num <= 0f) + { + return false; + } + bool flag = false; + List thingList = c.GetThingList(base.Map); + for (int i = 0; i < thingList.Count; i++) + { + Thing thing = thingList[i]; + if (!CanHit(thing)) + { + continue; + } + bool flag2 = false; + if (thing.def.Fillage == FillCategory.Full) + { + if (!(thing is Building_Door { Open: not false })) + { + ThrowDebugText("int-wall", c); + Impact(thing); + return true; + } + flag2 = true; + } + float num2 = 0f; + if (thing is Pawn pawn) + { + num2 = 0.4f * Mathf.Clamp(pawn.BodySize, 0.1f, 2f); + if (pawn.GetPosture() != 0) + { + num2 *= 0.1f; + } + if (launcher != null && pawn.Faction != null && launcher.Faction != null && !pawn.Faction.HostileTo(launcher.Faction)) + { + if (preventFriendlyFire) + { + num2 = 0f; + ThrowDebugText("ff-miss", c); + } + else + { + num2 *= Find.Storyteller.difficulty.friendlyFireChanceFactor; + } + } + } + else if (thing.def.fillPercent > 0.2f) + { + num2 = (flag2 ? 0.05f : ((!DestinationCell.AdjacentTo8Way(c)) ? (thing.def.fillPercent * 0.15f) : (thing.def.fillPercent * 1f))); + } + num2 *= num; + if (num2 > 1E-05f) + { + if (Rand.Chance(num2)) + { + ThrowDebugText("int-" + num2.ToStringPercent(), c); + Impact(thing); + return true; + } + flag = true; + ThrowDebugText(num2.ToStringPercent(), c); + } + } + if (!flag) + { + ThrowDebugText("o", c); + } + return false; + } + + private void ThrowDebugText(string text, IntVec3 c) + { + if (DebugViewSettings.drawShooting) + { + MoteMaker.ThrowText(c.ToVector3Shifted(), base.Map, text); + } + } + + protected override void DrawAt(Vector3 drawLoc, bool flip = false) + { + float num = ArcHeightFactor * GenMath.InverseParabola(DistanceCoveredFractionArc); + Vector3 vector = drawLoc + new Vector3(0f, 0f, 1f) * num; + if (def.projectile.shadowSize > 0f) + { + DrawShadow(drawLoc, num); + } + Quaternion rotation = ExactRotation; + if (def.projectile.spinRate != 0f) + { + float num2 = 60f / def.projectile.spinRate; + rotation = Quaternion.AngleAxis((float)Find.TickManager.TicksGame % num2 / num2 * 360f, Vector3.up); + } + if (def.projectile.useGraphicClass) + { + Graphic.Draw(vector, base.Rotation, this, rotation.eulerAngles.y); + } + else + { + Graphics.DrawMesh(MeshPool.GridPlane(def.graphicData.drawSize), vector, rotation, DrawMat, 0); + } + Comps_PostDraw(); + } + + protected bool CanHit(Thing thing) + { + if (!thing.Spawned) + { + return false; + } + if (thing == launcher) + { + return false; + } + ProjectileHitFlags hitFlags = HitFlags; + if (hitFlags == ProjectileHitFlags.None) + { + return false; + } + if (thing.Map != base.Map) + { + return false; + } + if (CoverUtility.ThingCovered(thing, base.Map)) + { + return false; + } + if (thing == intendedTarget && (hitFlags & ProjectileHitFlags.IntendedTarget) != 0) + { + return true; + } + if (thing != intendedTarget) + { + if (thing is Pawn) + { + if ((hitFlags & ProjectileHitFlags.NonTargetPawns) != 0) + { + return true; + } + } + else if ((hitFlags & ProjectileHitFlags.NonTargetWorld) != 0) + { + return true; + } + } + if (thing == intendedTarget && thing.def.Fillage == FillCategory.Full) + { + return true; + } + return false; + } + + protected virtual void ImpactSomething() + { + if (def.projectile.flyOverhead) + { + RoofDef roofDef = base.Map.roofGrid.RoofAt(base.Position); + if (roofDef != null) + { + if (roofDef.isThickRoof) + { + ThrowDebugText("hit-thick-roof", base.Position); + if (!def.projectile.soundHitThickRoof.NullOrUndefined()) + { + def.projectile.soundHitThickRoof.PlayOneShot(new TargetInfo(base.Position, base.Map)); + } + Destroy(); + return; + } + if (base.Position.GetEdifice(base.Map) == null || base.Position.GetEdifice(base.Map).def.Fillage != FillCategory.Full) + { + RoofCollapserImmediate.DropRoofInCells(base.Position, base.Map); + } + } + } + if (usedTarget.HasThing && CanHit(usedTarget.Thing)) + { + if (usedTarget.Thing is Pawn p && p.GetPosture() != 0 && (origin - destination).MagnitudeHorizontalSquared() >= 20.25f && !Rand.Chance(0.5f)) + { + ThrowDebugText("miss-laying", base.Position); + Impact(null); + } + else + { + Impact(usedTarget.Thing); + } + return; + } + List list = VerbUtility.ThingsToHit(base.Position, base.Map, CanHit); + list.Shuffle(); + for (int i = 0; i < list.Count; i++) + { + Thing thing = list[i]; + float num; + if (thing is Pawn pawn) + { + num = 0.5f * Mathf.Clamp(pawn.BodySize, 0.1f, 2f); + if (pawn.GetPosture() != 0 && (origin - destination).MagnitudeHorizontalSquared() >= 20.25f) + { + num *= 0.5f; + } + if (launcher != null && pawn.Faction != null && launcher.Faction != null && !pawn.Faction.HostileTo(launcher.Faction)) + { + num *= VerbUtility.InterceptChanceFactorFromDistance(origin, base.Position); + } + } + else + { + num = 1.5f * thing.def.fillPercent; + } + if (Rand.Chance(num)) + { + ThrowDebugText("hit-" + num.ToStringPercent(), base.Position); + Impact(list.RandomElement()); + return; + } + ThrowDebugText("miss-" + num.ToStringPercent(), base.Position); + } + Impact(null); + } + + protected virtual void Impact(Thing hitThing, bool blockedByShield = false) + { + GenClamor.DoClamor(this, 12f, ClamorDefOf.Impact); + if (!blockedByShield && def.projectile.landedEffecter != null) + { + def.projectile.landedEffecter.Spawn(base.Position, base.Map).Cleanup(); + } + Destroy(); + } + + private void DrawShadow(Vector3 drawLoc, float height) + { + if (!(shadowMaterial == null)) + { + float num = def.projectile.shadowSize * Mathf.Lerp(1f, 0.6f, height); + Vector3 s = new Vector3(num, 1f, num); + Vector3 vector = new Vector3(0f, -0.01f, 0f); + Matrix4x4 matrix = default(Matrix4x4); + matrix.SetTRS(drawLoc + vector, Quaternion.identity, s); + Graphics.DrawMesh(MeshPool.plane10, matrix, shadowMaterial, 0); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\CompRitualEffect_IntervalSpawn.txt` +**相似度:** 0.5662 + +```csharp +public abstract class CompRitualEffect_IntervalSpawn : RitualVisualEffectComp +{ + public int lastSpawnTick = -1; + + public int ticksPassed; + + protected int burstsDone; + + protected CompProperties_RitualEffectIntervalSpawn Props => (CompProperties_RitualEffectIntervalSpawn)props; + + public override bool ShouldSpawnNow(LordJob_Ritual ritual) + { + if (Props.delay > 0 && ticksPassed < Props.delay) + { + return false; + } + if (Props.maxBursts > 0 && burstsDone >= Props.maxBursts) + { + return false; + } + if (lastSpawnTick != -1) + { + return GenTicks.TicksGame - lastSpawnTick >= Props.spawnIntervalTicks; + } + return true; + } + + public override void TickInterval(int delta) + { + base.TickInterval(delta); + ticksPassed += delta; + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref lastSpawnTick, "lastSpawnTick", -1); + Scribe_Values.Look(ref burstsDone, "burstsDone", 0); + Scribe_Values.Look(ref ticksPassed, "ticksPassed", 0); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse\Gene_Clotting.txt` +**相似度:** 0.5078 + +```csharp +public class Gene_Clotting : Gene +{ + private const int ClotCheckInterval = 360; + + private static readonly FloatRange TendingQualityRange = new FloatRange(0.2f, 0.7f); + + public override void TickInterval(int delta) + { + base.TickInterval(delta); + if (!pawn.IsHashIntervalTick(360, delta)) + { + return; + } + List hediffs = pawn.health.hediffSet.hediffs; + for (int num = hediffs.Count - 1; num >= 0; num--) + { + if (hediffs[num].Bleeding) + { + hediffs[num].Tended(TendingQualityRange.RandomInRange, TendingQualityRange.TrueMax, 1); + } + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/PsychicRitualDef.txt b/MCP/vector_cache/PsychicRitualDef.txt new file mode 100644 index 00000000..1cb31bc6 --- /dev/null +++ b/MCP/vector_cache/PsychicRitualDef.txt @@ -0,0 +1,871 @@ +根据向量相似度分析,与 'PsychicRitualDef' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef.txt` + +```csharp +public class PsychicRitualDef : Def +{ + public ResearchProjectDef researchPrerequisite; + + public bool allowsDrafting; + + public bool allowsFloatMenu; + + public int cooldownHours; + + public bool nonRequiredPawnsMayLeave; + + public float rolePowerFactor = 0.2f; + + public bool aiCastable; + + public bool playerCastable = true; + + public float minThreatPoints; + + public bool castableOnPocketMaps = true; + + public List layerWhitelist = new List(); + + [MustTranslate] + public string letterAICompleteLabel; + + [MustTranslate] + public string letterAICompleteText; + + [MustTranslate] + public string letterAIArrivedText; + + [NoTranslate] + public string iconPath; + + public Texture2D uiIcon = BaseContent.BadTex; + + private List rolesBackingList = new List(8); + + private static readonly List tmpPawnsIterationList = new List(16); + + public virtual List Roles + { + get + { + rolesBackingList.Clear(); + return rolesBackingList; + } + } + + public bool Visible + { + get + { + if (!playerCastable) + { + return false; + } + if (DebugSettings.godMode) + { + return true; + } + if (researchPrerequisite == null) + { + return true; + } + if (!researchPrerequisite.IsFinished) + { + return false; + } + return true; + } + } + + public override void PostLoad() + { + if (!string.IsNullOrEmpty(iconPath)) + { + LongEventHandler.ExecuteWhenFinished(delegate + { + uiIcon = ContentFinder.Get(iconPath); + }); + } + } + + public virtual AcceptanceReport AllowsDrafting(Pawn pawn) + { + if (allowsDrafting) + { + return true; + } + return new AcceptanceReport("ParticipatingInPsychicRitual".Translate(pawn, label)); + } + + public virtual AcceptanceReport AllowsFloatMenu(Pawn pawn) + { + if (allowsFloatMenu) + { + return true; + } + return new AcceptanceReport("ParticipatingInPsychicRitual".Translate(pawn, label)); + } + + public virtual bool BlocksSocialInteraction(Pawn pawn) + { + return true; + } + + public virtual AcceptanceReport AbilityAllowed(Ability ability) + { + return new AcceptanceReport("AbilityDisabledInPsychicRitual".Translate(ability.pawn, label)); + } + + public virtual PsychicRitualGraph CreateGraph() + { + return new PsychicRitualGraph(); + } + + public virtual List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + throw new NotImplementedException("You must subclass PsychicRitualDef and override CreateToils() to return a list of toils."); + } + + public virtual PsychicRitualCandidatePool FindCandidatePool() + { + return new PsychicRitualCandidatePool(new List(Find.CurrentMap.mapPawns.FreeColonistsAndPrisonersSpawned.Where((Pawn p) => !p.IsSubhuman)), new List()); + } + + public virtual PsychicRitualRoleAssignments BuildRoleAssignments(TargetInfo target) + { + return new PsychicRitualRoleAssignments(Roles, target); + } + + public static bool OfferingReachable(Map map, List pawns, IngredientCount offering, out int reachableCount) + { + using (new ProfilerBlock("Offering reachable")) + { + reachableCount = 0; + float num = offering.GetBaseCount(); + if (num <= 0f) + { + return true; + } + List list; + using (new ProfilerBlock("ThingsMatchingFilter")) + { + list = map.listerThings.ThingsMatchingFilter(offering.filter); + } + foreach (Thing item in list) + { + if (num <= 0f) + { + break; + } + foreach (Pawn pawn in pawns) + { + if (pawn.CanReserveAndReach(item, PathEndMode.Touch, pawn.NormalMaxDanger()) && !item.IsForbidden(pawn) && !item.Fogged()) + { + num -= (float)item.stackCount; + reachableCount += item.stackCount; + break; + } + } + } + return num <= 0f; + } + } + + public virtual IEnumerable BlockingIssues(PsychicRitualRoleAssignments assignments, Map map) + { + return Enumerable.Empty(); + } + + public virtual TaggedString PsychicRitualBegunMessage(PsychicRitualRoleAssignments assignments) + { + return "PsychicRitualBegun".Translate(label); + } + + public virtual TaggedString PsychicRitualCompletedMessage() + { + return "PsychicRitualCompleted".Translate(label); + } + + public virtual TaggedString PsychicRitualCanceledMessage(TaggedString reason) + { + if (reason.NullOrEmpty()) + { + return "PsychicRitualCanceled".Translate(label); + } + return "PsychicRitualCanceledBecause".Translate(label, reason); + } + + public virtual TaggedString LeftPsychicRitualMessage(Pawn pawn, TaggedString reason) + { + if (reason.NullOrEmpty()) + { + return "PsychicRitualLeft".Translate(pawn, label); + } + return "PsychicRitualLeftBecause".Translate(pawn, label, reason); + } + + public virtual string GetPawnReport(PsychicRitual psychicRitual, Pawn pawn) + { + return "PsychicRitualAttending".Translate(label.Named("RITUALNAME")); + } + + public virtual Lord MakeNewLord(PsychicRitualRoleAssignments assignments) + { + Lord lord = LordMaker.MakeNewLord(Faction.OfPlayer, new LordJob_PsychicRitual(this, assignments), Find.CurrentMap, assignments.AllAssignedPawns); + if (assignments.Target.Thing is Building b) + { + lord.AddBuilding(b); + } + return lord; + } + + public virtual bool IsValidTarget(TargetInfo target, out AnyEnum reason) + { + reason = AnyEnum.None; + return true; + } + + public virtual TaggedString InvalidTargetReason(AnyEnum reason) + { + if (reason == AnyEnum.None) + { + return TaggedString.Empty; + } + throw new InvalidOperationException("Unknown enum type " + reason.enumType.ToStringSafe() + "; did you forget to override `InvalidTargetReason` in a child class?"); + } + + public virtual void CalculateMaxPower(PsychicRitualRoleAssignments assignments, List powerFactorsOut, out float power) + { + power = 0f; + int num = 0; + IReadOnlyDictionary> roleAssignments = assignments.RoleAssignments; + PsychicRitualRoleDef key; + List value; + foreach (KeyValuePair> item in roleAssignments) + { + item.Deconstruct(out key, out value); + PsychicRitualRoleDef psychicRitualRoleDef = key; + List list = value; + if (psychicRitualRoleDef.applyPowerOffset) + { + num += list.Count; + } + if (psychicRitualRoleDef.MaxCount != psychicRitualRoleDef.MinCount) + { + float num2 = (float)(list.Count - psychicRitualRoleDef.MinCount) / (float)(psychicRitualRoleDef.MaxCount - psychicRitualRoleDef.MinCount); + power += rolePowerFactor * num2; + powerFactorsOut?.Add(new QualityFactor + { + count = $"{list.Count} / {psychicRitualRoleDef.MaxCount}", + label = Find.ActiveLanguageWorker.Pluralize(psychicRitualRoleDef.LabelCap), + positive = (list.Count >= psychicRitualRoleDef.MinCount), + quality = rolePowerFactor * num2, + toolTip = psychicRitualRoleDef.description.CapitalizeFirst().EndWithPeriod() + }); + } + } + if (num > 0) + { + float num3 = 0f; + foreach (KeyValuePair> item2 in roleAssignments) + { + item2.Deconstruct(out key, out value); + PsychicRitualRoleDef psychicRitualRoleDef2 = key; + List list2 = value; + if (!psychicRitualRoleDef2.applyPowerOffset) + { + continue; + } + foreach (Pawn item3 in list2) + { + num3 += item3.GetStatValue(StatDefOf.PsychicRitualQualityOffset) / (float)num; + } + } + if (!Mathf.Approximately(num3, 0f)) + { + power += num3; + powerFactorsOut?.Add(new QualityFactor + { + label = "PsychicRitualDef_InvocationCircle_QualityFactor_Ideoligion".Translate(), + positive = (num3 > 0f), + count = num3.ToStringPercent(), + quality = num3, + toolTip = "PsychicRitualDef_InvocationCircle_QualityFactor_Ideoligion_Tooltip".Translate() + }); + } + } + power = Mathf.Clamp01(power); + } + + public virtual void RemoveIncapablePawns(PsychicRitual psychicRitual) + { + foreach (var (psychicRitualRoleDef2, collection) in psychicRitual.assignments.RoleAssignments) + { + tmpPawnsIterationList.Clear(); + tmpPawnsIterationList.AddRange(collection); + foreach (Pawn tmpPawnsIteration in tmpPawnsIterationList) + { + if (!psychicRitualRoleDef2.PawnCanDo(PsychicRitualRoleDef.Context.Runtime, tmpPawnsIteration, psychicRitual.assignments.Target, out var reason) && psychicRitual.LeaveOrCancelPsychicRitual(psychicRitualRoleDef2, tmpPawnsIteration, reason.ToPlayerReadable()) == PsychicRitual.LeftOrCanceled.Canceled) + { + return; + } + } + } + } + + public virtual void CheckPsychicRitualCancelConditions(PsychicRitual psychicRitual) + { + TargetInfo target = psychicRitual.assignments.Target; + if (target.ThingDestroyed) + { + psychicRitual.CancelPsychicRitual("PsychicRitualDef_TargetDestroyed".Translate(target.Thing.Named("TARGET"))); + } + } + + public virtual TaggedString OutcomeDescription(FloatRange qualityRange, string qualityNumber, PsychicRitualRoleAssignments assignments) + { + return TaggedString.Empty; + } + + public virtual IEnumerable OutcomeWarnings(PsychicRitualRoleAssignments assignments) + { + return Enumerable.Empty(); + } + + public virtual TaggedString TimeAndOfferingLabel() + { + return TaggedString.Empty; + } + + public virtual void InitializeCast(Map map) + { + } + + public virtual IntVec3 GetBestStandableRolePosition(bool playerRitual, IntVec3 origin, IntVec3 ritualPosition, Map map, float radius = 8f) + { + if (playerRitual) + { + return origin; + } + IntVec3 result = CellFinder.StandableCellNear(origin, map, radius, (IntVec3 c) => map.reachability.CanReach(ritualPosition, c, PathEndMode.OnCell, TraverseMode.NoPassClosedDoorsOrWater)); + if (result.IsValid) + { + return result; + } + return origin; + } + + public virtual IEnumerable GetPawnTooltipExtras(Pawn pawn) + { + yield break; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_NeurosisPulse.txt` +**相似度:** 0.7397 + +```csharp +public class PsychicRitualDef_NeurosisPulse : PsychicRitualDef_InvocationCircle +{ + public SimpleCurve durationDaysFromQualityCurve; + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph graph) + { + List list = base.CreateToils(psychicRitual, graph); + list.Add(new PsychicRitualToil_NeurosisPulse(InvokerRole)); + return list; + } + + public override TaggedString OutcomeDescription(FloatRange qualityRange, string qualityNumber, PsychicRitualRoleAssignments assignments) + { + return outcomeDescription.Formatted(Mathf.FloorToInt(durationDaysFromQualityCurve.Evaluate(qualityRange.min) * 60000f).ToStringTicksToDays()); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_Psychophagy.txt` +**相似度:** 0.7324 + +```csharp +public class PsychicRitualDef_Psychophagy : PsychicRitualDef_InvocationCircle +{ + public FloatRange brainDamageRange; + + public SimpleCurve effectDurationDaysFromQualityCurve; + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + List list = base.CreateToils(psychicRitual, parent); + list.Add(new PsychicRitualToil_Psychophagy(InvokerRole, TargetRole, brainDamageRange)); + list.Add(new PsychicRitualToil_TargetCleanup(InvokerRole, TargetRole)); + return list; + } + + public override TaggedString OutcomeDescription(FloatRange qualityRange, string qualityNumber, PsychicRitualRoleAssignments assignments) + { + string text = Mathf.FloorToInt(effectDurationDaysFromQualityCurve.Evaluate(qualityRange.min) * 60000f).ToStringTicksToDays(); + IntRange disappearsAfterTicks = HediffDefOf.DarkPsychicShock.CompProps().disappearsAfterTicks; + FloatRange floatRange = new FloatRange(Mathf.FloorToInt(disappearsAfterTicks.min.TicksToDays()), Mathf.FloorToInt(disappearsAfterTicks.max.TicksToDays())); + return outcomeDescription.Formatted(text, floatRange.ToString(), brainDamageRange.ToString()); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_PleasurePulse.txt` +**相似度:** 0.7237 + +```csharp +public class PsychicRitualToil_PleasurePulse : PsychicRitualToil +{ + private PsychicRitualRoleDef invokerRole; + + protected PsychicRitualToil_PleasurePulse() + { + } + + public PsychicRitualToil_PleasurePulse(PsychicRitualRoleDef invokerRole) + { + this.invokerRole = invokerRole; + } + + public override void Start(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + base.Start(psychicRitual, parent); + Pawn pawn = psychicRitual.assignments.FirstAssignedPawn(invokerRole); + float duration = ((PsychicRitualDef_PleasurePulse)psychicRitual.def).durationDaysFromQualityCurve.Evaluate(psychicRitual.PowerPercent); + psychicRitual.ReleaseAllPawnsAndBuildings(); + if (pawn != null) + { + ApplyOutcome(psychicRitual, pawn, duration); + } + } + + private void ApplyOutcome(PsychicRitual psychicRitual, Pawn invoker, float duration) + { + foreach (Pawn item in invoker.Map.mapPawns.AllHumanlikeSpawned) + { + if (!(item.GetStatValue(StatDefOf.PsychicSensitivity) <= 0f)) + { + Hediff firstHediffOfDef = item.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.NeurosisPulse); + if (firstHediffOfDef != null) + { + item.health.RemoveHediff(firstHediffOfDef); + } + Hediff hediff = HediffMaker.MakeHediff(HediffDefOf.PleasurePulse, item); + HediffComp_Disappears hediffComp_Disappears = hediff.TryGetComp(); + if (hediffComp_Disappears != null) + { + hediffComp_Disappears.ticksToDisappear = Mathf.RoundToInt(duration * 60000f); + } + item.health.AddHediff(hediff); + } + } + Find.LetterStack.ReceiveLetter("PsychicRitualCompleteLabel".Translate(psychicRitual.def.label), "PleasurePulseCompleteText".Translate(invoker, Mathf.FloorToInt(duration * 60000f).ToStringTicksToDays(), psychicRitual.def.Named("RITUAL")), LetterDefOf.NeutralEvent); + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Defs.Look(ref invokerRole, "invokerRole"); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_InvocationCircle.txt` +**相似度:** 0.7220 + +```csharp +public class PsychicRitualDef_InvocationCircle : PsychicRitualDef +{ + public enum InvalidTargetReasonEnum + { + None, + AreaNotClear + } + + private class RitualQualityOffsetCount + { + public float offset; + + public int count; + + public RitualQualityOffsetCount(int count, float offset) + { + this.count = count; + this.offset = offset; + } + } + + public FloatRange hoursUntilHoraxEffect; + + public FloatRange hoursUntilOutcome; + + public float invocationCircleRadius = 3.9f; + + [MustTranslate] + public string outcomeDescription; + + public float psychicSensitivityPowerFactor = 0.25f; + + protected PsychicRitualRoleDef invokerRole; + + protected PsychicRitualRoleDef chanterRole; + + protected PsychicRitualRoleDef targetRole; + + protected PsychicRitualRoleDef defenderRole; + + protected IngredientCount requiredOffering; + + protected string timeAndOfferingLabelCached; + + public static readonly SimpleCurve PsychicSensitivityToPowerFactor = new SimpleCurve + { + new CurvePoint(0f, 0f), + new CurvePoint(1f, 0.5f), + new CurvePoint(2f, 0.9f), + new CurvePoint(3f, 1f) + }; + + protected const int DurationTicksWaitPostEffect = 120; + + private static Dictionary> tmpParticipants = new Dictionary>(8); + + private List tmpGatheringPawns = new List(8); + + public virtual PsychicRitualRoleDef InvokerRole => invokerRole; + + public virtual PsychicRitualRoleDef ChanterRole => chanterRole; + + public virtual PsychicRitualRoleDef TargetRole => targetRole; + + public virtual PsychicRitualRoleDef DefenderRole => defenderRole; + + public virtual IngredientCount RequiredOffering => requiredOffering; + + public TaggedString CooldownLabel => "PsychicRitualCooldownLabel".Translate() + ": " + (cooldownHours * 2500).ToStringTicksToPeriod(); + + public override List Roles + { + get + { + List roles = base.Roles; + if (InvokerRole != null) + { + roles.Add(InvokerRole); + } + if (TargetRole != null) + { + roles.Add(TargetRole); + } + if (ChanterRole != null) + { + roles.Add(ChanterRole); + } + if (DefenderRole != null) + { + roles.Add(DefenderRole); + } + return roles; + } + } + + public override void ResolveReferences() + { + base.ResolveReferences(); + requiredOffering?.ResolveReferences(); + invokerRole = invokerRole ?? PsychicRitualRoleDefOf.Invoker; + chanterRole = chanterRole ?? PsychicRitualRoleDefOf.Chanter; + } + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + float randomInRange = hoursUntilOutcome.RandomInRange; + IReadOnlyDictionary> readOnlyDictionary = GenerateRolePositions(psychicRitual.assignments); + return new List + { + new PsychicRitualToil_GatherForInvocation(psychicRitual, this, readOnlyDictionary), + new PsychicRitualToil_InvokeHorax(InvokerRole, readOnlyDictionary.TryGetValue(InvokerRole), TargetRole, readOnlyDictionary.TryGetValue(TargetRole), ChanterRole, readOnlyDictionary.TryGetValue(ChanterRole), DefenderRole, readOnlyDictionary.TryGetValue(DefenderRole), RequiredOffering) + { + hoursUntilHoraxEffect = hoursUntilHoraxEffect.RandomInRange, + hoursUntilOutcome = randomInRange + }, + new PsychicRitualToil_Wait(120) + }; + } + + public override bool IsValidTarget(TargetInfo target, out AnyEnum reason) + { + foreach (IntVec3 item in GenRadial.RadialCellsAround(target.Cell, invocationCircleRadius, useCenter: true)) + { + if (!item.Standable(target.Map)) + { + reason = AnyEnum.FromEnum(InvalidTargetReasonEnum.AreaNotClear); + return false; + } + } + reason = AnyEnum.None; + return true; + } + + public override TaggedString InvalidTargetReason(AnyEnum reason) + { + InvalidTargetReasonEnum? invalidTargetReasonEnum = reason.As(); + if (invalidTargetReasonEnum.HasValue) + { + InvalidTargetReasonEnum valueOrDefault = invalidTargetReasonEnum.GetValueOrDefault(); + return valueOrDefault switch + { + InvalidTargetReasonEnum.None => TaggedString.Empty, + InvalidTargetReasonEnum.AreaNotClear => "PsychicRitualDef_InvocationCircle_AreaMustBeClear".Translate(), + _ => throw new InvalidOperationException($"Unknown reason {valueOrDefault}"), + }; + } + return base.InvalidTargetReason(reason); + } + + public override TaggedString OutcomeDescription(FloatRange qualityRange, string qualityNumber, PsychicRitualRoleAssignments assignments) + { + return outcomeDescription.Formatted(); + } + + public override IEnumerable OutcomeWarnings(PsychicRitualRoleAssignments assignments) + { + foreach (Pawn item in assignments.AssignedPawns(TargetRole)) + { + if (item.HomeFaction != null && item.HomeFaction != Faction.OfPlayer && item.HomeFaction.def.humanlikeFaction && !item.HomeFaction.def.PermanentlyHostileTo(FactionDefOf.PlayerColony) && !item.HomeFaction.temporary && !item.HomeFaction.Hidden) + { + yield return "PsychicRitualFactionWarning".Translate(item.Named("PAWN"), item.HomeFaction.Named("FACTION")).Colorize(ColoredText.WarningColor); + } + } + } + + public override TaggedString TimeAndOfferingLabel() + { + if (timeAndOfferingLabelCached != null) + { + return timeAndOfferingLabelCached; + } + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.AppendLine(DurationLabel()); + stringBuilder.Append(CooldownLabel); + if (!OfferingLabel().NullOrEmpty()) + { + stringBuilder.AppendLine(); + stringBuilder.Append(OfferingLabel()); + } + timeAndOfferingLabelCached = stringBuilder.ToString(); + return timeAndOfferingLabelCached; + } + + private TaggedString OfferingLabel() + { + StringBuilder stringBuilder = new StringBuilder(); + if (RequiredOffering != null) + { + stringBuilder.Append("PsychicRitualRequiredOffering".Translate().CapitalizeFirst()); + stringBuilder.Append(": "); + stringBuilder.Append(RequiredOffering.SummaryFilterFirst); + } + return stringBuilder.ToString(); + } + + public TaggedString DurationLabel() + { + string value = ((int)(hoursUntilOutcome.Average * 2500f)).ToStringTicksToPeriod(); + TaggedString taggedString = ((hoursUntilOutcome.min != hoursUntilOutcome.max) ? "ExpectedLordJobDuration".Translate().CapitalizeFirst() : "PsychicRitualExpectedDurationLabel".Translate().CapitalizeFirst()); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(taggedString); + stringBuilder.Append(": "); + stringBuilder.Append(value); + return stringBuilder.ToString(); + } + + private IReadOnlyDictionary> GenerateRolePositions(PsychicRitualRoleAssignments assignments) + { + tmpParticipants.ClearAndPoolValueLists(); + foreach (PsychicRitualRoleDef role in Roles) + { + tmpParticipants[role] = SimplePool>.Get(); + } + int num = assignments.RoleAssignedCount(ChanterRole) + assignments.RoleAssignedCount(InvokerRole); + int num2 = 0; + foreach (Pawn item in assignments.AssignedPawns(InvokerRole)) + { + _ = item; + int num3 = 0; + IntVec3 cell; + do + { + cell = assignments.Target.Cell; + cell += IntVec3.FromPolar(360f * (float)num2++ / (float)num, invocationCircleRadius); + } + while (!cell.Walkable(assignments.Target.Map) && num3++ <= 10); + if (num3 >= 10) + { + cell = assignments.Target.Cell; + } + tmpParticipants[InvokerRole].Add(cell); + } + foreach (Pawn item2 in assignments.AssignedPawns(ChanterRole)) + { + _ = item2; + IntVec3 cell2 = assignments.Target.Cell; + cell2 += IntVec3.FromPolar(360f * (float)num2++ / (float)num, invocationCircleRadius); + tmpParticipants[ChanterRole].Add(cell2); + } + foreach (Pawn item3 in assignments.AssignedPawns(TargetRole)) + { + _ = item3; + tmpParticipants[TargetRole].Add(assignments.Target.Cell); + } + if (DefenderRole != null) + { + num2 = 0; + int num4 = assignments.RoleAssignedCount(DefenderRole); + bool playerRitual = assignments.AllAssignedPawns.Any((Pawn x) => x.Faction == Faction.OfPlayer); + foreach (Pawn item4 in assignments.AssignedPawns(DefenderRole)) + { + _ = item4; + IntVec3 cell3 = assignments.Target.Cell; + cell3 += IntVec3.FromPolar(360f * (float)num2++ / (float)num4, invocationCircleRadius + 5f); + cell3 = GetBestStandableRolePosition(playerRitual, cell3, assignments.Target.Cell, assignments.Target.Map); + tmpParticipants[DefenderRole].Add(cell3); + } + } + return tmpParticipants; + } + + public override IEnumerable BlockingIssues(PsychicRitualRoleAssignments assignments, Map map) + { + using (new ProfilerBlock("PsychicRitualDef.BlockingIssues")) + { + tmpGatheringPawns.Clear(); + foreach (var (psychicRitualRoleDef2, collection) in assignments.RoleAssignments) + { + if (psychicRitualRoleDef2.CanHandleOfferings) + { + tmpGatheringPawns.AddRange(collection); + } + } + tmpGatheringPawns.RemoveAll(map, (Map _map, Pawn _pawn) => _pawn.MapHeld != _map); + if (TargetRole != null && InvokerRole != null) + { + Pawn pawn = assignments.FirstAssignedPawn(TargetRole); + if (pawn != null) + { + Pawn pawn2 = assignments.FirstAssignedPawn(InvokerRole); + if (pawn2 != null && pawn.IsPrisoner && !map.reachability.CanReach(assignments.Target.Cell, pawn.PositionHeld, PathEndMode.Touch, TraverseParms.For(pawn2))) + { + yield return "PsychicRitualTargetUnreachableByInvoker".Translate(pawn.Named("TARGET"), pawn2.Named("INVOKER")); + } + } + } + if (RequiredOffering != null && !PsychicRitualDef.OfferingReachable(map, tmpGatheringPawns, RequiredOffering, out var reachableCount)) + { + yield return "PsychicRitualOfferingsInsufficient".Translate(RequiredOffering.SummaryFilterFirst, reachableCount); + } + } + } + + public override void CalculateMaxPower(PsychicRitualRoleAssignments assignments, List powerFactorsOut, out float power) + { + power = 0f; + foreach (Pawn item in assignments.AssignedPawns(InvokerRole)) + { + float statValue = item.GetStatValue(StatDefOf.PsychicSensitivity); + float num = PsychicSensitivityToPowerFactor.Evaluate(statValue); + num *= psychicSensitivityPowerFactor; + powerFactorsOut?.Add(new QualityFactor + { + label = "PsychicRitualDef_InvocationCircle_QualityFactor_PsychicSensitivity".Translate(item.Named("PAWN")), + positive = (statValue >= 1f), + count = statValue.ToStringPercent(), + quality = num, + toolTip = "PsychicRitualDef_InvocationCircle_QualityFactor_PsychicSensitivity_Tooltip".Translate(item.Named("PAWN")) + }); + power += num; + } + base.CalculateMaxPower(assignments, powerFactorsOut, out var power2); + power += power2; + if (assignments.Target.Thing is Building building) + { + CalculateFacilityQualityOffset(powerFactorsOut, ref power, building); + } + power = Mathf.Clamp01(power); + } + + private static void CalculateFacilityQualityOffset(List powerFactorsOut, ref float power, Building building) + { + Dictionary dictionary = new Dictionary(); + List linkedFacilitiesListForReading = building.GetComp().LinkedFacilitiesListForReading; + for (int i = 0; i < linkedFacilitiesListForReading.Count; i++) + { + Thing thing = linkedFacilitiesListForReading[i]; + CompFacility compFacility = thing.TryGetComp(); + if (compFacility?.StatOffsets == null) + { + continue; + } + for (int j = 0; j < compFacility.StatOffsets.Count; j++) + { + StatModifier statModifier = compFacility.StatOffsets[j]; + if (statModifier.stat == StatDefOf.PsychicRitualQuality) + { + if (dictionary.TryGetValue(thing.def, out var value)) + { + value.count++; + value.offset += statModifier.value; + } + else + { + dictionary.Add(thing.def, new RitualQualityOffsetCount(1, statModifier.value)); + } + } + } + } + foreach (KeyValuePair item in dictionary) + { + powerFactorsOut?.Add(new QualityFactor + { + label = Find.ActiveLanguageWorker.Pluralize(item.Key.label).CapitalizeFirst(), + positive = true, + count = item.Value.count + " / " + item.Key.GetCompProperties().maxSimultaneous, + quality = item.Value.offset, + toolTip = "PsychicRitualDef_InvocationCircle_QualityFactor_Increase_Tooltip".Translate().CapitalizeFirst().EndWithPeriod() + }); + power += item.Value.offset; + } + } + + public override IEnumerable SpecialDisplayStats(StatRequest req) + { + foreach (StatDrawEntry item in base.SpecialDisplayStats(req)) + { + yield return item; + } + if (requiredOffering != null) + { + yield return new StatDrawEntry(StatCategoryDefOf.PsychicRituals, "StatsReport_Offering".Translate(), requiredOffering.SummaryFilterFirst, "StatsReport_Offering_Desc".Translate(), 1000); + } + yield return new StatDrawEntry(StatCategoryDefOf.PsychicRituals, "StatsReport_RitualDuration".Translate(), Mathf.FloorToInt(hoursUntilOutcome.min * 2500f).ToStringTicksToPeriod(), "StatsReport_RitualDuration_Desc".Translate(), 500); + yield return new StatDrawEntry(StatCategoryDefOf.PsychicRituals, "StatsReport_RitualCooldown".Translate(), (cooldownHours * 2500).ToStringTicksToPeriod(), "StatsReport_RitualCooldown_Desc".Translate(), 100); + } + + public override void CheckPsychicRitualCancelConditions(PsychicRitual psychicRitual) + { + base.CheckPsychicRitualCancelConditions(psychicRitual); + if (!psychicRitual.canceled && invokerRole != null) + { + Pawn pawn = psychicRitual.assignments.FirstAssignedPawn(InvokerRole); + if (pawn != null && pawn.DeadOrDowned) + { + psychicRitual.CancelPsychicRitual("PsychicRitualDef_InvocationCircle_InvokerLost".Translate(pawn.Named("PAWN"))); + } + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/PsychicRitualDef_InvocationCircle.txt b/MCP/vector_cache/PsychicRitualDef_InvocationCircle.txt new file mode 100644 index 00000000..8b20176c --- /dev/null +++ b/MCP/vector_cache/PsychicRitualDef_InvocationCircle.txt @@ -0,0 +1,573 @@ +根据向量相似度分析,与 'PsychicRitualDef_InvocationCircle' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_InvocationCircle.txt` + +```csharp +public class PsychicRitualDef_InvocationCircle : PsychicRitualDef +{ + public enum InvalidTargetReasonEnum + { + None, + AreaNotClear + } + + private class RitualQualityOffsetCount + { + public float offset; + + public int count; + + public RitualQualityOffsetCount(int count, float offset) + { + this.count = count; + this.offset = offset; + } + } + + public FloatRange hoursUntilHoraxEffect; + + public FloatRange hoursUntilOutcome; + + public float invocationCircleRadius = 3.9f; + + [MustTranslate] + public string outcomeDescription; + + public float psychicSensitivityPowerFactor = 0.25f; + + protected PsychicRitualRoleDef invokerRole; + + protected PsychicRitualRoleDef chanterRole; + + protected PsychicRitualRoleDef targetRole; + + protected PsychicRitualRoleDef defenderRole; + + protected IngredientCount requiredOffering; + + protected string timeAndOfferingLabelCached; + + public static readonly SimpleCurve PsychicSensitivityToPowerFactor = new SimpleCurve + { + new CurvePoint(0f, 0f), + new CurvePoint(1f, 0.5f), + new CurvePoint(2f, 0.9f), + new CurvePoint(3f, 1f) + }; + + protected const int DurationTicksWaitPostEffect = 120; + + private static Dictionary> tmpParticipants = new Dictionary>(8); + + private List tmpGatheringPawns = new List(8); + + public virtual PsychicRitualRoleDef InvokerRole => invokerRole; + + public virtual PsychicRitualRoleDef ChanterRole => chanterRole; + + public virtual PsychicRitualRoleDef TargetRole => targetRole; + + public virtual PsychicRitualRoleDef DefenderRole => defenderRole; + + public virtual IngredientCount RequiredOffering => requiredOffering; + + public TaggedString CooldownLabel => "PsychicRitualCooldownLabel".Translate() + ": " + (cooldownHours * 2500).ToStringTicksToPeriod(); + + public override List Roles + { + get + { + List roles = base.Roles; + if (InvokerRole != null) + { + roles.Add(InvokerRole); + } + if (TargetRole != null) + { + roles.Add(TargetRole); + } + if (ChanterRole != null) + { + roles.Add(ChanterRole); + } + if (DefenderRole != null) + { + roles.Add(DefenderRole); + } + return roles; + } + } + + public override void ResolveReferences() + { + base.ResolveReferences(); + requiredOffering?.ResolveReferences(); + invokerRole = invokerRole ?? PsychicRitualRoleDefOf.Invoker; + chanterRole = chanterRole ?? PsychicRitualRoleDefOf.Chanter; + } + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + float randomInRange = hoursUntilOutcome.RandomInRange; + IReadOnlyDictionary> readOnlyDictionary = GenerateRolePositions(psychicRitual.assignments); + return new List + { + new PsychicRitualToil_GatherForInvocation(psychicRitual, this, readOnlyDictionary), + new PsychicRitualToil_InvokeHorax(InvokerRole, readOnlyDictionary.TryGetValue(InvokerRole), TargetRole, readOnlyDictionary.TryGetValue(TargetRole), ChanterRole, readOnlyDictionary.TryGetValue(ChanterRole), DefenderRole, readOnlyDictionary.TryGetValue(DefenderRole), RequiredOffering) + { + hoursUntilHoraxEffect = hoursUntilHoraxEffect.RandomInRange, + hoursUntilOutcome = randomInRange + }, + new PsychicRitualToil_Wait(120) + }; + } + + public override bool IsValidTarget(TargetInfo target, out AnyEnum reason) + { + foreach (IntVec3 item in GenRadial.RadialCellsAround(target.Cell, invocationCircleRadius, useCenter: true)) + { + if (!item.Standable(target.Map)) + { + reason = AnyEnum.FromEnum(InvalidTargetReasonEnum.AreaNotClear); + return false; + } + } + reason = AnyEnum.None; + return true; + } + + public override TaggedString InvalidTargetReason(AnyEnum reason) + { + InvalidTargetReasonEnum? invalidTargetReasonEnum = reason.As(); + if (invalidTargetReasonEnum.HasValue) + { + InvalidTargetReasonEnum valueOrDefault = invalidTargetReasonEnum.GetValueOrDefault(); + return valueOrDefault switch + { + InvalidTargetReasonEnum.None => TaggedString.Empty, + InvalidTargetReasonEnum.AreaNotClear => "PsychicRitualDef_InvocationCircle_AreaMustBeClear".Translate(), + _ => throw new InvalidOperationException($"Unknown reason {valueOrDefault}"), + }; + } + return base.InvalidTargetReason(reason); + } + + public override TaggedString OutcomeDescription(FloatRange qualityRange, string qualityNumber, PsychicRitualRoleAssignments assignments) + { + return outcomeDescription.Formatted(); + } + + public override IEnumerable OutcomeWarnings(PsychicRitualRoleAssignments assignments) + { + foreach (Pawn item in assignments.AssignedPawns(TargetRole)) + { + if (item.HomeFaction != null && item.HomeFaction != Faction.OfPlayer && item.HomeFaction.def.humanlikeFaction && !item.HomeFaction.def.PermanentlyHostileTo(FactionDefOf.PlayerColony) && !item.HomeFaction.temporary && !item.HomeFaction.Hidden) + { + yield return "PsychicRitualFactionWarning".Translate(item.Named("PAWN"), item.HomeFaction.Named("FACTION")).Colorize(ColoredText.WarningColor); + } + } + } + + public override TaggedString TimeAndOfferingLabel() + { + if (timeAndOfferingLabelCached != null) + { + return timeAndOfferingLabelCached; + } + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.AppendLine(DurationLabel()); + stringBuilder.Append(CooldownLabel); + if (!OfferingLabel().NullOrEmpty()) + { + stringBuilder.AppendLine(); + stringBuilder.Append(OfferingLabel()); + } + timeAndOfferingLabelCached = stringBuilder.ToString(); + return timeAndOfferingLabelCached; + } + + private TaggedString OfferingLabel() + { + StringBuilder stringBuilder = new StringBuilder(); + if (RequiredOffering != null) + { + stringBuilder.Append("PsychicRitualRequiredOffering".Translate().CapitalizeFirst()); + stringBuilder.Append(": "); + stringBuilder.Append(RequiredOffering.SummaryFilterFirst); + } + return stringBuilder.ToString(); + } + + public TaggedString DurationLabel() + { + string value = ((int)(hoursUntilOutcome.Average * 2500f)).ToStringTicksToPeriod(); + TaggedString taggedString = ((hoursUntilOutcome.min != hoursUntilOutcome.max) ? "ExpectedLordJobDuration".Translate().CapitalizeFirst() : "PsychicRitualExpectedDurationLabel".Translate().CapitalizeFirst()); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(taggedString); + stringBuilder.Append(": "); + stringBuilder.Append(value); + return stringBuilder.ToString(); + } + + private IReadOnlyDictionary> GenerateRolePositions(PsychicRitualRoleAssignments assignments) + { + tmpParticipants.ClearAndPoolValueLists(); + foreach (PsychicRitualRoleDef role in Roles) + { + tmpParticipants[role] = SimplePool>.Get(); + } + int num = assignments.RoleAssignedCount(ChanterRole) + assignments.RoleAssignedCount(InvokerRole); + int num2 = 0; + foreach (Pawn item in assignments.AssignedPawns(InvokerRole)) + { + _ = item; + int num3 = 0; + IntVec3 cell; + do + { + cell = assignments.Target.Cell; + cell += IntVec3.FromPolar(360f * (float)num2++ / (float)num, invocationCircleRadius); + } + while (!cell.Walkable(assignments.Target.Map) && num3++ <= 10); + if (num3 >= 10) + { + cell = assignments.Target.Cell; + } + tmpParticipants[InvokerRole].Add(cell); + } + foreach (Pawn item2 in assignments.AssignedPawns(ChanterRole)) + { + _ = item2; + IntVec3 cell2 = assignments.Target.Cell; + cell2 += IntVec3.FromPolar(360f * (float)num2++ / (float)num, invocationCircleRadius); + tmpParticipants[ChanterRole].Add(cell2); + } + foreach (Pawn item3 in assignments.AssignedPawns(TargetRole)) + { + _ = item3; + tmpParticipants[TargetRole].Add(assignments.Target.Cell); + } + if (DefenderRole != null) + { + num2 = 0; + int num4 = assignments.RoleAssignedCount(DefenderRole); + bool playerRitual = assignments.AllAssignedPawns.Any((Pawn x) => x.Faction == Faction.OfPlayer); + foreach (Pawn item4 in assignments.AssignedPawns(DefenderRole)) + { + _ = item4; + IntVec3 cell3 = assignments.Target.Cell; + cell3 += IntVec3.FromPolar(360f * (float)num2++ / (float)num4, invocationCircleRadius + 5f); + cell3 = GetBestStandableRolePosition(playerRitual, cell3, assignments.Target.Cell, assignments.Target.Map); + tmpParticipants[DefenderRole].Add(cell3); + } + } + return tmpParticipants; + } + + public override IEnumerable BlockingIssues(PsychicRitualRoleAssignments assignments, Map map) + { + using (new ProfilerBlock("PsychicRitualDef.BlockingIssues")) + { + tmpGatheringPawns.Clear(); + foreach (var (psychicRitualRoleDef2, collection) in assignments.RoleAssignments) + { + if (psychicRitualRoleDef2.CanHandleOfferings) + { + tmpGatheringPawns.AddRange(collection); + } + } + tmpGatheringPawns.RemoveAll(map, (Map _map, Pawn _pawn) => _pawn.MapHeld != _map); + if (TargetRole != null && InvokerRole != null) + { + Pawn pawn = assignments.FirstAssignedPawn(TargetRole); + if (pawn != null) + { + Pawn pawn2 = assignments.FirstAssignedPawn(InvokerRole); + if (pawn2 != null && pawn.IsPrisoner && !map.reachability.CanReach(assignments.Target.Cell, pawn.PositionHeld, PathEndMode.Touch, TraverseParms.For(pawn2))) + { + yield return "PsychicRitualTargetUnreachableByInvoker".Translate(pawn.Named("TARGET"), pawn2.Named("INVOKER")); + } + } + } + if (RequiredOffering != null && !PsychicRitualDef.OfferingReachable(map, tmpGatheringPawns, RequiredOffering, out var reachableCount)) + { + yield return "PsychicRitualOfferingsInsufficient".Translate(RequiredOffering.SummaryFilterFirst, reachableCount); + } + } + } + + public override void CalculateMaxPower(PsychicRitualRoleAssignments assignments, List powerFactorsOut, out float power) + { + power = 0f; + foreach (Pawn item in assignments.AssignedPawns(InvokerRole)) + { + float statValue = item.GetStatValue(StatDefOf.PsychicSensitivity); + float num = PsychicSensitivityToPowerFactor.Evaluate(statValue); + num *= psychicSensitivityPowerFactor; + powerFactorsOut?.Add(new QualityFactor + { + label = "PsychicRitualDef_InvocationCircle_QualityFactor_PsychicSensitivity".Translate(item.Named("PAWN")), + positive = (statValue >= 1f), + count = statValue.ToStringPercent(), + quality = num, + toolTip = "PsychicRitualDef_InvocationCircle_QualityFactor_PsychicSensitivity_Tooltip".Translate(item.Named("PAWN")) + }); + power += num; + } + base.CalculateMaxPower(assignments, powerFactorsOut, out var power2); + power += power2; + if (assignments.Target.Thing is Building building) + { + CalculateFacilityQualityOffset(powerFactorsOut, ref power, building); + } + power = Mathf.Clamp01(power); + } + + private static void CalculateFacilityQualityOffset(List powerFactorsOut, ref float power, Building building) + { + Dictionary dictionary = new Dictionary(); + List linkedFacilitiesListForReading = building.GetComp().LinkedFacilitiesListForReading; + for (int i = 0; i < linkedFacilitiesListForReading.Count; i++) + { + Thing thing = linkedFacilitiesListForReading[i]; + CompFacility compFacility = thing.TryGetComp(); + if (compFacility?.StatOffsets == null) + { + continue; + } + for (int j = 0; j < compFacility.StatOffsets.Count; j++) + { + StatModifier statModifier = compFacility.StatOffsets[j]; + if (statModifier.stat == StatDefOf.PsychicRitualQuality) + { + if (dictionary.TryGetValue(thing.def, out var value)) + { + value.count++; + value.offset += statModifier.value; + } + else + { + dictionary.Add(thing.def, new RitualQualityOffsetCount(1, statModifier.value)); + } + } + } + } + foreach (KeyValuePair item in dictionary) + { + powerFactorsOut?.Add(new QualityFactor + { + label = Find.ActiveLanguageWorker.Pluralize(item.Key.label).CapitalizeFirst(), + positive = true, + count = item.Value.count + " / " + item.Key.GetCompProperties().maxSimultaneous, + quality = item.Value.offset, + toolTip = "PsychicRitualDef_InvocationCircle_QualityFactor_Increase_Tooltip".Translate().CapitalizeFirst().EndWithPeriod() + }); + power += item.Value.offset; + } + } + + public override IEnumerable SpecialDisplayStats(StatRequest req) + { + foreach (StatDrawEntry item in base.SpecialDisplayStats(req)) + { + yield return item; + } + if (requiredOffering != null) + { + yield return new StatDrawEntry(StatCategoryDefOf.PsychicRituals, "StatsReport_Offering".Translate(), requiredOffering.SummaryFilterFirst, "StatsReport_Offering_Desc".Translate(), 1000); + } + yield return new StatDrawEntry(StatCategoryDefOf.PsychicRituals, "StatsReport_RitualDuration".Translate(), Mathf.FloorToInt(hoursUntilOutcome.min * 2500f).ToStringTicksToPeriod(), "StatsReport_RitualDuration_Desc".Translate(), 500); + yield return new StatDrawEntry(StatCategoryDefOf.PsychicRituals, "StatsReport_RitualCooldown".Translate(), (cooldownHours * 2500).ToStringTicksToPeriod(), "StatsReport_RitualCooldown_Desc".Translate(), 100); + } + + public override void CheckPsychicRitualCancelConditions(PsychicRitual psychicRitual) + { + base.CheckPsychicRitualCancelConditions(psychicRitual); + if (!psychicRitual.canceled && invokerRole != null) + { + Pawn pawn = psychicRitual.assignments.FirstAssignedPawn(InvokerRole); + if (pawn != null && pawn.DeadOrDowned) + { + psychicRitual.CancelPsychicRitual("PsychicRitualDef_InvocationCircle_InvokerLost".Translate(pawn.Named("PAWN"))); + } + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_GatherForInvocation.txt` +**相似度:** 0.7802 + +```csharp +public class PsychicRitualToil_GatherForInvocation : PsychicRitualToil_Multiplex +{ + protected PsychicRitualToil_Goto fallbackToil; + + protected PsychicRitualGraph invokerToil; + + protected PsychicRitualToil_Goto invokerFinalToil; + + private static List blockingPawns = new List(16); + + protected PsychicRitualToil_GatherForInvocation() + { + } + + protected PsychicRitualToil_GatherForInvocation(PsychicRitualDef_InvocationCircle def, PsychicRitualToil_Goto fallbackToil, PsychicRitualGraph invokerToil) + : base(new Dictionary { { def.InvokerRole, invokerToil } }, fallbackToil) + { + this.fallbackToil = fallbackToil; + this.invokerToil = invokerToil; + invokerFinalToil = (PsychicRitualToil_Goto)invokerToil.GetToil(invokerToil.ToilCount - 1); + } + + public PsychicRitualToil_GatherForInvocation(PsychicRitual psychicRitual, PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + : this(def, FallbackToil(psychicRitual, def, rolePositions), InvokerToil(def, rolePositions)) + { + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_References.Look(ref fallbackToil, "fallbackToil"); + Scribe_References.Look(ref invokerToil, "invokerToil"); + Scribe_References.Look(ref invokerFinalToil, "invokerFinalToil"); + } + + public override string GetReport(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + blockingPawns.Clear(); + blockingPawns.AddRange(fallbackToil.BlockingPawns); + if (invokerToil.CurrentToil == invokerFinalToil) + { + blockingPawns.AddRange(invokerFinalToil.BlockingPawns); + } + else + { + blockingPawns.AddRange(invokerFinalToil.ControlledPawns(psychicRitual)); + } + string text = "PsychicRitualToil_GatherForInvocation_Report".Translate(); + string text2 = blockingPawns.Select((Pawn pawn) => pawn.LabelShortCap).ToCommaList(); + return text + ": " + text2; + } + + public static PsychicRitualToil_Goto FallbackToil(PsychicRitual psychicRitual, PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + return new PsychicRitualToil_Goto(rolePositions.Slice(rolePositions.Keys.Except(def.InvokerRole))); + } + + public static PsychicRitualGraph InvokerToil(PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + return new PsychicRitualGraph(InvokerGatherPhaseToils(def, rolePositions)) + { + willAdvancePastLastToil = false + }; + } + + public static IEnumerable InvokerGatherPhaseToils(PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + if (def.RequiredOffering != null) + { + yield return new PsychicRitualToil_GatherOfferings(def.InvokerRole, def.RequiredOffering); + } + if (def.TargetRole != null) + { + yield return new PsychicRitualToil_CarryAndGoto(def.InvokerRole, def.TargetRole, rolePositions); + } + yield return new PsychicRitualToil_Goto(rolePositions.Slice(def.InvokerRole)); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_SkipAbduction.txt` +**相似度:** 0.7696 + +```csharp +public class PsychicRitualDef_SkipAbduction : PsychicRitualDef_InvocationCircle +{ + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph graph) + { + List list = base.CreateToils(psychicRitual, graph); + list.Add(new PsychicRitualToil_SkipAbduction(InvokerRole)); + return list; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_BloodRain.txt` +**相似度:** 0.7621 + +```csharp +public class PsychicRitualDef_BloodRain : PsychicRitualDef_InvocationCircle +{ + private FloatRange durationHoursFromQualityRange; + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph graph) + { + List list = base.CreateToils(psychicRitual, graph); + list.Add(new PsychicRitualToil_BloodRain(InvokerRole, durationHoursFromQualityRange)); + return list; + } + + public override TaggedString OutcomeDescription(FloatRange qualityRange, string qualityNumber, PsychicRitualRoleAssignments assignments) + { + return outcomeDescription.Formatted(Mathf.FloorToInt(durationHoursFromQualityRange.LerpThroughRange(qualityRange.min) * 2500f).ToStringTicksToPeriod()); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_SummonFleshbeasts.txt` +**相似度:** 0.7620 + +```csharp +public class PsychicRitualDef_SummonFleshbeasts : PsychicRitualDef_InvocationCircle +{ + public SimpleCurve fleshbeastPointsFromThreatPointsCurve; + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph graph) + { + List list = base.CreateToils(psychicRitual, graph); + list.Add(new PsychicRitualToil_SummonFleshbeastsCultist(InvokerRole)); + return list; + } + + public override void CalculateMaxPower(PsychicRitualRoleAssignments assignments, List powerFactorsOut, out float power) + { + power = 0f; + if (assignments.FirstAssignedPawn(InvokerRole)?.GetLord()?.LordJob is LordJob_PsychicRitual lordJob_PsychicRitual) + { + power = Mathf.Max(power, lordJob_PsychicRitual.points); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_SummonPitGate.txt` +**相似度:** 0.7581 + +```csharp +public class PsychicRitualDef_SummonPitGate : PsychicRitualDef_InvocationCircle +{ + private FloatRange combatPointMultiplierFromQualityRange; + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph graph) + { + List list = base.CreateToils(psychicRitual, graph); + list.Add(new PsychicRitualToil_SummonPitGate(InvokerRole, combatPointMultiplierFromQualityRange)); + return list; + } + + public override IEnumerable BlockingIssues(PsychicRitualRoleAssignments assignments, Map map) + { + foreach (string item in base.BlockingIssues(assignments, map)) + { + yield return item; + } + if (map.listerThings.ThingsOfDef(ThingDefOf.PitGate).Count > 0 || map.listerThings.ThingsOfDef(ThingDefOf.PitGateSpawner).Count > 0) + { + yield return "PitGateAlreadyExists".Translate(); + } + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/PsychicRitualToil_GatherForInvocation.txt b/MCP/vector_cache/PsychicRitualToil_GatherForInvocation.txt new file mode 100644 index 00000000..a0c2836b --- /dev/null +++ b/MCP/vector_cache/PsychicRitualToil_GatherForInvocation.txt @@ -0,0 +1,103 @@ +根据向量相似度分析,与 'PsychicRitualToil_GatherForInvocation' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_GatherForInvocation.txt` + +```csharp +public class PsychicRitualToil_GatherForInvocation : PsychicRitualToil_Multiplex +{ + protected PsychicRitualToil_Goto fallbackToil; + + protected PsychicRitualGraph invokerToil; + + protected PsychicRitualToil_Goto invokerFinalToil; + + private static List blockingPawns = new List(16); + + protected PsychicRitualToil_GatherForInvocation() + { + } + + protected PsychicRitualToil_GatherForInvocation(PsychicRitualDef_InvocationCircle def, PsychicRitualToil_Goto fallbackToil, PsychicRitualGraph invokerToil) + : base(new Dictionary { { def.InvokerRole, invokerToil } }, fallbackToil) + { + this.fallbackToil = fallbackToil; + this.invokerToil = invokerToil; + invokerFinalToil = (PsychicRitualToil_Goto)invokerToil.GetToil(invokerToil.ToilCount - 1); + } + + public PsychicRitualToil_GatherForInvocation(PsychicRitual psychicRitual, PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + : this(def, FallbackToil(psychicRitual, def, rolePositions), InvokerToil(def, rolePositions)) + { + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_References.Look(ref fallbackToil, "fallbackToil"); + Scribe_References.Look(ref invokerToil, "invokerToil"); + Scribe_References.Look(ref invokerFinalToil, "invokerFinalToil"); + } + + public override string GetReport(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + blockingPawns.Clear(); + blockingPawns.AddRange(fallbackToil.BlockingPawns); + if (invokerToil.CurrentToil == invokerFinalToil) + { + blockingPawns.AddRange(invokerFinalToil.BlockingPawns); + } + else + { + blockingPawns.AddRange(invokerFinalToil.ControlledPawns(psychicRitual)); + } + string text = "PsychicRitualToil_GatherForInvocation_Report".Translate(); + string text2 = blockingPawns.Select((Pawn pawn) => pawn.LabelShortCap).ToCommaList(); + return text + ": " + text2; + } + + public static PsychicRitualToil_Goto FallbackToil(PsychicRitual psychicRitual, PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + return new PsychicRitualToil_Goto(rolePositions.Slice(rolePositions.Keys.Except(def.InvokerRole))); + } + + public static PsychicRitualGraph InvokerToil(PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + return new PsychicRitualGraph(InvokerGatherPhaseToils(def, rolePositions)) + { + willAdvancePastLastToil = false + }; + } + + public static IEnumerable InvokerGatherPhaseToils(PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + if (def.RequiredOffering != null) + { + yield return new PsychicRitualToil_GatherOfferings(def.InvokerRole, def.RequiredOffering); + } + if (def.TargetRole != null) + { + yield return new PsychicRitualToil_CarryAndGoto(def.InvokerRole, def.TargetRole, rolePositions); + } + yield return new PsychicRitualToil_Goto(rolePositions.Slice(def.InvokerRole)); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\PsychicRitualDef_InvocationCircle.txt` +**相似度:** 0.7275 + +```csharp + private class RitualQualityOffsetCount + { + public float offset; + + public int count; + + public RitualQualityOffsetCount(int count, float offset) + { + this.count = count; + this.offset = offset; + } + } +``` \ No newline at end of file diff --git a/MCP/vector_cache/PsychicRitualToil_GatherOfferings.txt b/MCP/vector_cache/PsychicRitualToil_GatherOfferings.txt new file mode 100644 index 00000000..f834d65e --- /dev/null +++ b/MCP/vector_cache/PsychicRitualToil_GatherOfferings.txt @@ -0,0 +1,270 @@ +根据向量相似度分析,与 'PsychicRitualToil_GatherOfferings' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_GatherOfferings.txt` + +```csharp +public class PsychicRitualToil_GatherOfferings : PsychicRitualToil +{ + protected PsychicRitualRoleDef gathererRole; + + protected bool offeringsGathered; + + protected IngredientCount requiredOffering; + + protected PsychicRitualToil_GatherOfferings() + { + } + + public PsychicRitualToil_GatherOfferings(PsychicRitualRoleDef offeringGatherer, IngredientCount requiredOffering) + { + gathererRole = offeringGatherer; + this.requiredOffering = requiredOffering; + } + + public override void UpdateAllDuties(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + DutyDef def; + if (offeringsGathered || PawnsHaveOfferings(psychicRitual)) + { + offeringsGathered = true; + def = DutyDefOf.Idle; + } + else + { + def = DutyDefOf.GatherOfferingsForPsychicRitual; + } + foreach (Pawn item in psychicRitual.assignments.AssignedPawns(gathererRole)) + { + SetPawnDuty(item, psychicRitual, parent, def); + } + } + + public override bool Tick(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + return offeringsGathered; + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Defs.Look(ref gathererRole, "gathererRole"); + Scribe_Values.Look(ref offeringsGathered, "offeringsGathered", defaultValue: false); + Scribe_Deep.Look(ref requiredOffering, "requiredOffering"); + } + + public static float PawnsOfferingCount(IEnumerable pawns, IngredientCount offering) + { + float num = 0f; + foreach (Pawn pawn in pawns) + { + foreach (Thing item in (IEnumerable)pawn.inventory.GetDirectlyHeldThings()) + { + if (offering.filter.Allows(item)) + { + num += (float)item.stackCount; + if (num >= offering.GetBaseCount()) + { + return offering.GetBaseCount(); + } + } + } + } + return num; + } + + private bool PawnsHaveOfferings(PsychicRitual psychicRitual) + { + float baseCount = requiredOffering.GetBaseCount(); + return PawnsOfferingCount(psychicRitual.assignments.AssignedPawns(gathererRole), requiredOffering) >= baseCount; + } + + public override void Notify_PawnJobDone(PsychicRitual psychicRitual, PsychicRitualGraph parent, Pawn pawn, Job job, JobCondition condition) + { + base.Notify_PawnJobDone(psychicRitual, parent, pawn, job, condition); + if (psychicRitual.assignments.RoleForPawn(pawn) == gathererRole && (offeringsGathered || PawnsHaveOfferings(psychicRitual))) + { + offeringsGathered = true; + SetPawnDuty(pawn, psychicRitual, parent, DutyDefOf.Idle); + } + } + + public override ThinkResult Notify_DutyResult(PsychicRitual psychicRitual, PsychicRitualGraph parent, ThinkResult result, Pawn pawn, JobIssueParams issueParams) + { + result = base.Notify_DutyResult(psychicRitual, parent, result, pawn, issueParams); + if (result.Job != null) + { + return result; + } + if (psychicRitual.assignments.RoleForPawn(pawn) != gathererRole) + { + return result; + } + if (offeringsGathered || PawnsHaveOfferings(psychicRitual)) + { + offeringsGathered = true; + SetPawnDuty(pawn, psychicRitual, parent, DutyDefOf.Idle); + return new ThinkResult(JobMaker.MakeJob(JobDefOf.Wait, 1), null); + } + TaggedString reason = "PsychicRitualToil_GatherOfferings_OfferingUnavailable".Translate(pawn.Named("PAWN"), requiredOffering.filter.Summary); + psychicRitual.LeaveOrCancelPsychicRitual(gathererRole, pawn, reason); + return result; + } + + public override string GetJobReport(PsychicRitual psychicRitual, PsychicRitualGraph parent, Pawn pawn) + { + if (psychicRitual.assignments.RoleForPawn(pawn) == gathererRole) + { + return "PsychicRitualToil_GatherOfferings_JobReport".Translate(); + } + return base.GetJobReport(psychicRitual, parent, pawn); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobGiver_GatherOfferingsForPsychicRitual.txt` +**相似度:** 0.8171 + +```csharp +public class JobGiver_GatherOfferingsForPsychicRitual : ThinkNode_JobGiver +{ + protected override Job TryGiveJob(Pawn pawn) + { + Lord lord = pawn.GetLord(); + if (lord == null) + { + return null; + } + if (!(lord.CurLordToil is LordToil_PsychicRitual lordToil_PsychicRitual)) + { + return null; + } + PsychicRitualDef def = lordToil_PsychicRitual.RitualData.psychicRitual.def; + PsychicRitualDef_InvocationCircle ritualDef = def as PsychicRitualDef_InvocationCircle; + if (ritualDef == null) + { + return null; + } + if (ritualDef.RequiredOffering == null) + { + return null; + } + PsychicRitual psychicRitual = lordToil_PsychicRitual.RitualData.psychicRitual; + PsychicRitualRoleDef psychicRitualRoleDef = psychicRitual.assignments.RoleForPawn(pawn); + if (psychicRitualRoleDef == null) + { + return null; + } + float num = PsychicRitualToil_GatherOfferings.PawnsOfferingCount(psychicRitual.assignments.AssignedPawns(psychicRitualRoleDef), ritualDef.RequiredOffering); + int needed = Mathf.CeilToInt(ritualDef.RequiredOffering.GetBaseCount() - num); + if (needed == 0) + { + return null; + } + Thing thing2 = GenClosest.ClosestThingReachable(pawn.PositionHeld, pawn.MapHeld, ThingRequest.ForGroup(ThingRequestGroup.HaulableAlways), PathEndMode.Touch, TraverseParms.For(pawn), 9999f, delegate(Thing thing) + { + if (!ritualDef.RequiredOffering.filter.Allows(thing)) + { + return false; + } + if (thing.IsForbidden(pawn)) + { + return false; + } + int stackCount = Mathf.Min(needed, thing.stackCount); + return pawn.CanReserve(thing, 10, stackCount) ? true : false; + }); + if (thing2 == null) + { + return null; + } + Job job = JobMaker.MakeJob(JobDefOf.TakeCountToInventory, thing2); + job.count = Mathf.Min(needed, thing2.stackCount); + return job; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI.Group\PsychicRitualToil_GatherForInvocation.txt` +**相似度:** 0.7774 + +```csharp +public class PsychicRitualToil_GatherForInvocation : PsychicRitualToil_Multiplex +{ + protected PsychicRitualToil_Goto fallbackToil; + + protected PsychicRitualGraph invokerToil; + + protected PsychicRitualToil_Goto invokerFinalToil; + + private static List blockingPawns = new List(16); + + protected PsychicRitualToil_GatherForInvocation() + { + } + + protected PsychicRitualToil_GatherForInvocation(PsychicRitualDef_InvocationCircle def, PsychicRitualToil_Goto fallbackToil, PsychicRitualGraph invokerToil) + : base(new Dictionary { { def.InvokerRole, invokerToil } }, fallbackToil) + { + this.fallbackToil = fallbackToil; + this.invokerToil = invokerToil; + invokerFinalToil = (PsychicRitualToil_Goto)invokerToil.GetToil(invokerToil.ToilCount - 1); + } + + public PsychicRitualToil_GatherForInvocation(PsychicRitual psychicRitual, PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + : this(def, FallbackToil(psychicRitual, def, rolePositions), InvokerToil(def, rolePositions)) + { + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_References.Look(ref fallbackToil, "fallbackToil"); + Scribe_References.Look(ref invokerToil, "invokerToil"); + Scribe_References.Look(ref invokerFinalToil, "invokerFinalToil"); + } + + public override string GetReport(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + blockingPawns.Clear(); + blockingPawns.AddRange(fallbackToil.BlockingPawns); + if (invokerToil.CurrentToil == invokerFinalToil) + { + blockingPawns.AddRange(invokerFinalToil.BlockingPawns); + } + else + { + blockingPawns.AddRange(invokerFinalToil.ControlledPawns(psychicRitual)); + } + string text = "PsychicRitualToil_GatherForInvocation_Report".Translate(); + string text2 = blockingPawns.Select((Pawn pawn) => pawn.LabelShortCap).ToCommaList(); + return text + ": " + text2; + } + + public static PsychicRitualToil_Goto FallbackToil(PsychicRitual psychicRitual, PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + return new PsychicRitualToil_Goto(rolePositions.Slice(rolePositions.Keys.Except(def.InvokerRole))); + } + + public static PsychicRitualGraph InvokerToil(PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + return new PsychicRitualGraph(InvokerGatherPhaseToils(def, rolePositions)) + { + willAdvancePastLastToil = false + }; + } + + public static IEnumerable InvokerGatherPhaseToils(PsychicRitualDef_InvocationCircle def, IReadOnlyDictionary> rolePositions) + { + if (def.RequiredOffering != null) + { + yield return new PsychicRitualToil_GatherOfferings(def.InvokerRole, def.RequiredOffering); + } + if (def.TargetRole != null) + { + yield return new PsychicRitualToil_CarryAndGoto(def.InvokerRole, def.TargetRole, rolePositions); + } + yield return new PsychicRitualToil_Goto(rolePositions.Slice(def.InvokerRole)); + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/Source-StartCarryThing-Toil-Toils_Haul.txt b/MCP/vector_cache/Source-StartCarryThing-Toil-Toils_Haul.txt new file mode 100644 index 00000000..cca8869f --- /dev/null +++ b/MCP/vector_cache/Source-StartCarryThing-Toil-Toils_Haul.txt @@ -0,0 +1,1333 @@ +根据向量相似度分析,与 'Source, Toils_Haul, StartCarryThing, Toil' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\Toils_Haul.txt` + +```csharp +public class Toils_Haul +{ + public static bool ErrorCheckForCarry(Pawn pawn, Thing haulThing, bool canTakeFromInventory = false) + { + if (!haulThing.SpawnedOrAnyParentSpawned || (!canTakeFromInventory && !haulThing.Spawned)) + { + Log.Message(pawn?.ToString() + " tried to start carry " + haulThing?.ToString() + " which isn't spawned."); + pawn.jobs.EndCurrentJob(JobCondition.Incompletable); + return true; + } + if (haulThing.stackCount == 0) + { + Log.Message(pawn?.ToString() + " tried to start carry " + haulThing?.ToString() + " which had stackcount 0."); + pawn.jobs.EndCurrentJob(JobCondition.Incompletable); + return true; + } + if (pawn.jobs.curJob.count <= 0) + { + Log.Error("Invalid count: " + pawn.jobs.curJob.count + ", setting to 1. Job was " + pawn.jobs.curJob); + pawn.jobs.curJob.count = 1; + } + return false; + } + + public static Toil StartCarryThing(TargetIndex haulableInd, bool putRemainderInQueue = false, bool subtractNumTakenFromJobCount = false, bool failIfStackCountLessThanJobCount = false, bool reserve = true, bool canTakeFromInventory = false) + { + Toil toil = ToilMaker.MakeToil("StartCarryThing"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + Thing thing = curJob.GetTarget(haulableInd).Thing; + if (!ErrorCheckForCarry(actor, thing, canTakeFromInventory)) + { + if (curJob.count == 0) + { + throw new Exception($"StartCarryThing job had count = {curJob.count}. Job: {curJob}"); + } + int num = actor.carryTracker.AvailableStackSpace(thing.def); + if (num <= 0) + { + int num2 = actor.carryTracker.MaxStackSpaceEver(thing.def); + int num3 = 0; + if (actor.carryTracker.CarriedThing != null) + { + num3 = actor.carryTracker.CarriedThing.stackCount; + } + throw new Exception($"StartCarryThing got availableStackSpace {num} (haulTarg {thing}, Job: {curJob}, maximum: {num2}, carrying: {num3})"); + } + if (failIfStackCountLessThanJobCount && thing.stackCount < curJob.count) + { + actor.jobs.curDriver.EndJobWith(JobCondition.Incompletable); + } + else + { + int num4 = Mathf.Min(curJob.count, num, thing.stackCount); + if (num4 <= 0) + { + int num5 = actor.carryTracker.MaxStackSpaceEver(thing.def); + int num6 = 0; + if (actor.carryTracker.CarriedThing != null) + { + num6 = actor.carryTracker.CarriedThing.stackCount; + } + throw new Exception($"StartCarryThing zero or negative desiredNumToTake ({num4}), curJob.count: {curJob.count}, availableStackSpace: {num} (maximum: {num5}, carrying: {num6}), haulTarg.stackCount: {thing.stackCount}"); + } + int stackCount = thing.stackCount; + int num7 = actor.carryTracker.TryStartCarry(thing, num4, reserve); + if (num7 == 0) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + if (num7 < stackCount) + { + int num8 = curJob.count - num7; + if (putRemainderInQueue && num8 > 0) + { + curJob.GetTargetQueue(haulableInd).Insert(0, thing); + Job job = curJob; + if (job.countQueue == null) + { + job.countQueue = new List(); + } + curJob.countQueue.Insert(0, num8); + } + else if (actor.Map.reservationManager.ReservedBy(thing, actor, curJob)) + { + actor.Map.reservationManager.Release(thing, actor, curJob); + } + } + if (subtractNumTakenFromJobCount) + { + curJob.count -= num7; + } + curJob.SetTarget(haulableInd, actor.carryTracker.CarriedThing); + actor.records.Increment(RecordDefOf.ThingsHauled); + } + } + }; + return toil; + } + + public static Toil StoreThingJob(TargetIndex thingIndex) + { + Toil toil = ToilMaker.MakeToil("StoreThingJob"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.CurJob; + Thing thing = curJob.GetTarget(thingIndex).Thing; + Job job = HaulAIUtility.HaulToStorageJob(actor, thing, curJob.playerForced); + if (job != null) + { + actor.jobs.TryTakeOrderedJob(job, JobTag.Misc); + } + }; + return toil; + } + + public static Toil DropCarriedThing() + { + Toil toil = ToilMaker.MakeToil("DropCarriedThing"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Thing resultingThing; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to drop carried thing but is not carrying anything."); + } + else if (!actor.carryTracker.TryDropCarriedThing(actor.Position, ThingPlaceMode.Direct, out resultingThing)) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + }; + return toil; + } + + public static Toil JumpIfAlsoCollectingNextTargetInQueue(Toil gotoGetTargetToil, TargetIndex ind) + { + Toil toil = ToilMaker.MakeToil("JumpIfAlsoCollectingNextTargetInQueue"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + List targetQueue = curJob.GetTargetQueue(ind); + if (!targetQueue.NullOrEmpty() && curJob.count > 0) + { + if (actor.carryTracker.CarriedThing == null) + { + Log.Error("JumpToAlsoCollectTargetInQueue run on " + actor?.ToString() + " who is not carrying something."); + } + else if (actor.carryTracker.AvailableStackSpace(actor.carryTracker.CarriedThing.def) > 0) + { + for (int i = 0; i < targetQueue.Count; i++) + { + if (!GenAI.CanUseItemForWork(actor, targetQueue[i].Thing)) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + break; + } + if (targetQueue[i].Thing.def == actor.carryTracker.CarriedThing.def) + { + curJob.SetTarget(ind, targetQueue[i].Thing); + targetQueue.RemoveAt(i); + actor.jobs.curDriver.JumpToToil(gotoGetTargetToil); + break; + } + } + } + } + }; + return toil; + } + + public static Toil CheckForGetOpportunityDuplicate(Toil getHaulTargetToil, TargetIndex haulableInd, TargetIndex storeCellInd, bool takeFromValidStorage = false, Predicate extraValidator = null) + { + Toil toil = ToilMaker.MakeToil("CheckForGetOpportunityDuplicate"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + if (actor.carryTracker.CarriedThing.def.stackLimit != 1 && !actor.carryTracker.Full && curJob.count > 0) + { + Thing thing = GenClosest.ClosestThingReachable(actor.Position, actor.Map, ThingRequest.ForGroup(ThingRequestGroup.HaulableAlways), PathEndMode.ClosestTouch, TraverseParms.For(actor), 8f, DupeValidator); + if (thing != null) + { + curJob.SetTarget(haulableInd, thing); + actor.jobs.curDriver.JumpToToil(getHaulTargetToil); + } + } + bool DupeValidator(Thing t) + { + if (!t.Spawned) + { + return false; + } + if (t.def != actor.carryTracker.CarriedThing.def) + { + return false; + } + if (!t.CanStackWith(actor.carryTracker.CarriedThing)) + { + return false; + } + if (t.IsForbidden(actor)) + { + return false; + } + if (!t.IsSociallyProper(actor, forPrisoner: false, animalsCare: true)) + { + return false; + } + if (takeFromValidStorage && storeCellInd != 0 && curJob.GetTarget(storeCellInd).Cell.TryGetSlotGroup(actor.Map, out var group) && t.TryGetValidStoragePriority(out var priority) && (int)priority >= (int)group.Settings.Priority) + { + return false; + } + if (storeCellInd != 0 && !curJob.GetTarget(storeCellInd).Cell.IsValidStorageFor(actor.Map, t)) + { + return false; + } + if (!actor.CanReserve(t)) + { + return false; + } + if (extraValidator != null && !extraValidator(t)) + { + return false; + } + return true; + } + }; + return toil; + } + + public static Toil CarryHauledThingToCell(TargetIndex squareIndex, PathEndMode pathEndMode = PathEndMode.ClosestTouch) + { + Toil toil = ToilMaker.MakeToil("CarryHauledThingToCell"); + toil.initAction = delegate + { + IntVec3 cell3 = toil.actor.jobs.curJob.GetTarget(squareIndex).Cell; + toil.actor.pather.StartPath(cell3, pathEndMode); + }; + toil.defaultCompleteMode = ToilCompleteMode.PatherArrival; + toil.AddEndCondition(delegate + { + Pawn actor2 = toil.actor; + IntVec3 cell2 = actor2.jobs.curJob.GetTarget(squareIndex).Cell; + CompPushable compPushable2 = actor2.carryTracker.CarriedThing.TryGetComp(); + if (compPushable2 != null) + { + Vector3 v = actor2.Position.ToVector3() + compPushable2.drawPos; + if (new IntVec3(v) == cell2) + { + return JobCondition.Succeeded; + } + } + return JobCondition.Ongoing; + }); + toil.AddFailCondition(delegate + { + Pawn actor = toil.actor; + IntVec3 cell = actor.jobs.curJob.GetTarget(squareIndex).Cell; + if (actor.carryTracker.CarriedThing == null) + { + return true; + } + if (actor.jobs.curJob.haulMode == HaulMode.ToCellStorage && !cell.IsValidStorageFor(actor.Map, actor.carryTracker.CarriedThing)) + { + return true; + } + CompPushable compPushable = actor.carryTracker.CarriedThing.TryGetComp(); + return (compPushable != null && !compPushable.canBePushed) ? true : false; + }); + return toil; + } + + public static Toil PlaceCarriedThingInCellFacing(TargetIndex facingTargetInd) + { + Toil toil = ToilMaker.MakeToil("PlaceCarriedThingInCellFacing"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to place hauled thing in facing cell but is not hauling anything."); + } + else + { + LocalTargetInfo target = actor.CurJob.GetTarget(facingTargetInd); + IntVec3 intVec = ((!target.HasThing) ? target.Cell : target.Thing.OccupiedRect().ClosestCellTo(actor.Position)); + IntVec3 dropLoc = actor.Position + Pawn_RotationTracker.RotFromAngleBiased((actor.Position - intVec).AngleFlat).FacingCell; + if (!actor.carryTracker.TryDropCarriedThing(dropLoc, ThingPlaceMode.Direct, out var _)) + { + actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + } + }; + return toil; + } + + public static Toil PlaceHauledThingInCell(TargetIndex cellInd, Toil nextToilOnPlaceFailOrIncomplete, bool storageMode, bool tryStoreInSameStorageIfSpotCantHoldWholeStack = false) + { + Toil toil = ToilMaker.MakeToil("PlaceHauledThingInCell"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + IntVec3 cell = curJob.GetTarget(cellInd).Cell; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to place hauled thing in cell but is not hauling anything."); + } + else + { + SlotGroup slotGroup = actor.Map.haulDestinationManager.SlotGroupAt(cell); + if (slotGroup != null && slotGroup.Settings.AllowedToAccept(actor.carryTracker.CarriedThing)) + { + actor.Map.designationManager.TryRemoveDesignationOn(actor.carryTracker.CarriedThing, DesignationDefOf.Haul); + } + Action placedAction = null; + if (curJob.def == JobDefOf.DoBill || curJob.def == JobDefOf.RecolorApparel || curJob.def == JobDefOf.RefuelAtomic || curJob.def == JobDefOf.RearmTurretAtomic) + { + placedAction = delegate(Thing th, int added) + { + HaulAIUtility.UpdateJobWithPlacedThings(curJob, th, added); + }; + } + if (!actor.carryTracker.TryDropCarriedThing(cell, ThingPlaceMode.Direct, out var _, placedAction)) + { + if (storageMode) + { + IntVec3 storeCell; + if (nextToilOnPlaceFailOrIncomplete != null && ((tryStoreInSameStorageIfSpotCantHoldWholeStack && StoreUtility.TryFindBestBetterStoreCellForIn(actor.carryTracker.CarriedThing, actor, actor.Map, StoragePriority.Unstored, actor.Faction, curJob.bill.GetSlotGroup(), out var foundCell)) || StoreUtility.TryFindBestBetterStoreCellFor(actor.carryTracker.CarriedThing, actor, actor.Map, StoragePriority.Unstored, actor.Faction, out foundCell))) + { + if (actor.CanReserve(foundCell)) + { + actor.Reserve(foundCell, actor.CurJob); + } + actor.CurJob.SetTarget(cellInd, foundCell); + actor.jobs.curDriver.JumpToToil(nextToilOnPlaceFailOrIncomplete); + } + else if (HaulAIUtility.CanHaulAside(actor, actor.carryTracker.CarriedThing, out storeCell)) + { + curJob.SetTarget(cellInd, storeCell); + curJob.count = int.MaxValue; + curJob.haulOpportunisticDuplicates = false; + curJob.haulMode = HaulMode.ToCellNonStorage; + if (nextToilOnPlaceFailOrIncomplete != null) + { + actor.jobs.curDriver.JumpToToil(nextToilOnPlaceFailOrIncomplete); + } + } + else + { + Log.Warning($"Incomplete haul for {actor}: Could not find anywhere to put {actor.carryTracker.CarriedThing} near {actor.Position}. Destroying. This should be very uncommon!"); + actor.carryTracker.CarriedThing.Destroy(); + } + } + else if (nextToilOnPlaceFailOrIncomplete != null) + { + actor.jobs.curDriver.JumpToToil(nextToilOnPlaceFailOrIncomplete); + } + } + } + }; + return toil; + } + + public static Toil CarryHauledThingToContainer() + { + Toil gotoDest = ToilMaker.MakeToil("CarryHauledThingToContainer"); + gotoDest.initAction = delegate + { + gotoDest.actor.pather.StartPath(gotoDest.actor.jobs.curJob.targetB.Thing, PathEndMode.Touch); + }; + gotoDest.AddFailCondition(delegate + { + Thing thing = gotoDest.actor.jobs.curJob.targetB.Thing; + if (thing.Destroyed || (!gotoDest.actor.jobs.curJob.ignoreForbidden && thing.IsForbidden(gotoDest.actor))) + { + return true; + } + ThingOwner thingOwner = thing.TryGetInnerInteractableThingOwner(); + return (thingOwner != null && !thingOwner.CanAcceptAnyOf(gotoDest.actor.carryTracker.CarriedThing)) ? true : false; + }); + gotoDest.defaultCompleteMode = ToilCompleteMode.PatherArrival; + return gotoDest; + } + + public static Toil DepositHauledThingInContainer(TargetIndex containerInd, TargetIndex reserveForContainerInd, Action onDeposited = null) + { + Toil toil = ToilMaker.MakeToil("DepositHauledThingInContainer"); + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + if (actor.carryTracker.CarriedThing == null) + { + Log.Error(actor?.ToString() + " tried to place hauled thing in container but is not hauling anything."); + } + else + { + Thing thing = curJob.GetTarget(containerInd).Thing; + ThingOwner thingOwner = thing.TryGetInnerInteractableThingOwner(); + if (thingOwner != null) + { + int num = actor.carryTracker.CarriedThing.stackCount; + if (thing is IHaulEnroute haulEnroute) + { + ThingDef def = actor.carryTracker.CarriedThing.def; + num = Mathf.Min(haulEnroute.GetSpaceRemainingWithEnroute(def, actor), num); + if (reserveForContainerInd != 0) + { + Thing thing2 = curJob.GetTarget(reserveForContainerInd).Thing; + if (!thing2.DestroyedOrNull() && thing2 != haulEnroute && thing2 is IHaulEnroute enroute) + { + int spaceRemainingWithEnroute = enroute.GetSpaceRemainingWithEnroute(def, actor); + num = Mathf.Min(num, actor.carryTracker.CarriedThing.stackCount - spaceRemainingWithEnroute); + } + } + } + Thing carriedThing = actor.carryTracker.CarriedThing; + int num2 = actor.carryTracker.innerContainer.TryTransferToContainer(carriedThing, thingOwner, num); + if (num2 != 0) + { + if (thing is IHaulEnroute container) + { + thing.Map.enrouteManager.ReleaseFor(container, actor); + } + if (thing is INotifyHauledTo notifyHauledTo) + { + notifyHauledTo.Notify_HauledTo(actor, carriedThing, num2); + } + if (thing is ThingWithComps thingWithComps) + { + foreach (ThingComp allComp in thingWithComps.AllComps) + { + if (allComp is INotifyHauledTo notifyHauledTo2) + { + notifyHauledTo2.Notify_HauledTo(actor, carriedThing, num2); + } + } + } + if (curJob.def == JobDefOf.DoBill) + { + HaulAIUtility.UpdateJobWithPlacedThings(curJob, carriedThing, num2); + } + onDeposited?.Invoke(); + } + } + else if (curJob.GetTarget(containerInd).Thing.def.Minifiable) + { + actor.carryTracker.innerContainer.ClearAndDestroyContents(); + } + else + { + Log.Error("Could not deposit hauled thing in container: " + curJob.GetTarget(containerInd).Thing); + } + } + }; + return toil; + } + + public static Toil JumpToCarryToNextContainerIfPossible(Toil carryToContainerToil, TargetIndex primaryTargetInd) + { + Toil toil = ToilMaker.MakeToil("JumpToCarryToNextContainerIfPossible"); + toil.debugName = "Jump carry if possible"; + toil.initAction = delegate + { + Pawn actor = toil.actor; + Job curJob = actor.jobs.curJob; + if (actor.carryTracker.CarriedThing != null && curJob.targetQueueB != null && curJob.targetQueueB.Count > 0) + { + if (TryGetNextDestinationFromQueue(primaryTargetInd, TargetIndex.B, actor.carryTracker.CarriedThing.def, curJob, actor, out var nextTarget)) + { + curJob.targetQueueB.RemoveAll((LocalTargetInfo target) => target.Thing == nextTarget); + curJob.targetB = nextTarget; + curJob.targetC = nextTarget; + actor.jobs.curDriver.JumpToToil(carryToContainerToil); + } + } + }; + return toil; + } + + public static bool TryGetNextDestinationFromQueue(TargetIndex primaryIndex, TargetIndex destIndex, ThingDef stuff, Job job, Pawn actor, out Thing target) + { + Thing primaryTarget = job.GetTarget(primaryIndex).Thing; + target = null; + if (actor.carryTracker?.CarriedThing == null) + { + return false; + } + bool hasSpareItems = actor.carryTracker.CarriedThing.stackCount > 0; + if (primaryTarget != null && primaryTarget.Spawned && primaryTarget is IHaulEnroute enroute) + { + int spaceRemainingWithEnroute = enroute.GetSpaceRemainingWithEnroute(stuff, actor); + hasSpareItems = actor.carryTracker.CarriedThing.stackCount > spaceRemainingWithEnroute; + } + target = GenClosest.ClosestThing_Global_Reachable(actor.Position, actor.Map, from x in job.GetTargetQueue(destIndex) + select x.Thing, PathEndMode.Touch, TraverseParms.For(actor), 99999f, Validator); + return target != null; + bool Validator(Thing th) + { + if (!(th is IHaulEnroute enroute2)) + { + return false; + } + if (enroute2.GetSpaceRemainingWithEnroute(stuff, actor) <= 0) + { + return false; + } + if (th != primaryTarget && !hasSpareItems) + { + return false; + } + return true; + } + } + + public static Toil TakeToInventory(TargetIndex ind, int count) + { + return TakeToInventory(ind, count, null, null); + } + + private static Toil TakeToInventory(TargetIndex ind, int? count, Func countGetter, Func countGetterPassingThing) + { + Toil takeThing = ToilMaker.MakeToil("TakeToInventory"); + takeThing.initAction = delegate + { + Pawn actor = takeThing.actor; + Thing thing = actor.CurJob.GetTarget(ind).Thing; + if (!ErrorCheckForCarry(actor, thing)) + { + int num = Mathf.Min(count ?? countGetterPassingThing?.Invoke(thing) ?? countGetter(), thing.stackCount); + if (actor.CurJob.checkEncumbrance) + { + num = Math.Min(num, MassUtility.CountToPickUpUntilOverEncumbered(actor, thing)); + } + if (num <= 0) + { + actor.jobs.curDriver.ReadyForNextToil(); + } + else + { + actor.inventory.GetDirectlyHeldThings().TryAdd(thing.SplitOff(num)); + if (thing.def.ingestible != null && (int)thing.def.ingestible.preferability <= 5) + { + actor.mindState.lastInventoryRawFoodUseTick = Find.TickManager.TicksGame; + } + thing.def.soundPickup.PlayOneShot(new TargetInfo(actor.Position, actor.Map)); + } + } + }; + return takeThing; + } + + public static Toil TakeToInventory(TargetIndex ind, Func countGetter) + { + return TakeToInventory(ind, null, countGetter, null); + } + + public static Toil TakeToInventory(TargetIndex ind, Func countGetter) + { + return TakeToInventory(ind, null, null, countGetter); + } + + public static Toil TakeFromOtherInventory(Thing item, ThingOwner taker, ThingOwner holder, int count = -1, TargetIndex indexToSet = TargetIndex.None) + { + Toil toil = ToilMaker.MakeToil("TakeFromOtherInventory"); + toil.initAction = delegate + { + if (!holder.Contains(item)) + { + toil.actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + else + { + count = ((count < 0) ? toil.actor.jobs.curJob.count : count); + holder.TryTransferToContainer(item, taker, Mathf.Min(item.stackCount, count), out var resultingTransferredItem); + if (resultingTransferredItem == null) + { + Log.Warning($"Taker {toil.actor.Label} unable to take count {count} of thing {item.Label} from holder's inventory"); + toil.actor.jobs.EndCurrentJob(JobCondition.Incompletable); + } + else if (indexToSet != 0) + { + toil.actor.jobs.curJob.SetTarget(indexToSet, resultingTransferredItem); + } + } + }; + return toil; + } + + public static Toil CheckItemCarriedByOtherPawn(Thing item, TargetIndex targetPawnIfCarried = TargetIndex.None, Toil jumpIfCarriedByOther = null) + { + Toil toil = ToilMaker.MakeToil("CheckItemCarriedByOtherPawn"); + toil.initAction = delegate + { + Pawn pawn = (item?.ParentHolder as Pawn_InventoryTracker)?.pawn; + if (pawn != null && pawn != toil.actor) + { + if (targetPawnIfCarried != 0) + { + toil.actor.jobs.curJob.SetTarget(targetPawnIfCarried, pawn); + } + if (jumpIfCarriedByOther != null) + { + toil.actor.jobs.curDriver.JumpToToil(jumpIfCarriedByOther); + } + } + }; + toil.defaultCompleteMode = ToilCompleteMode.Instant; + toil.atomicWithPrevious = true; + return toil; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\JobDriver_HaulToContainer.txt` +**相似度:** 0.6036 + +```csharp +public class JobDriver_HaulToContainer : JobDriver, IBuildableDriver +{ + private Effecter graveDigEffect; + + protected const TargetIndex CarryThingIndex = TargetIndex.A; + + public const TargetIndex DestIndex = TargetIndex.B; + + protected const TargetIndex PrimaryDestIndex = TargetIndex.C; + + protected const int DiggingEffectInterval = 80; + + public Thing ThingToCarry => (Thing)job.GetTarget(TargetIndex.A); + + public Thing Container => (Thing)job.GetTarget(TargetIndex.B); + + public ThingDef ThingDef => ThingToCarry.def; + + protected virtual int Duration + { + get + { + if (Container == null || !(Container is Building building)) + { + return 0; + } + return building.HaulToContainerDuration(ThingToCarry); + } + } + + protected virtual EffecterDef WorkEffecter => null; + + protected virtual SoundDef WorkSustainer => null; + + public bool TryGetBuildableRect(out CellRect rect) + { + if (Container is Blueprint) + { + rect = Container.OccupiedRect(); + return true; + } + rect = default(CellRect); + return false; + } + + public override string GetReport() + { + Thing thing = ((pawn.CurJob != job || pawn.carryTracker.CarriedThing == null) ? base.TargetThingA : pawn.carryTracker.CarriedThing); + if (thing == null || !job.targetB.HasThing) + { + return "ReportHaulingUnknown".Translate(); + } + return ((job.GetTarget(TargetIndex.B).Thing is Building_Grave) ? "ReportHaulingToGrave" : "ReportHaulingTo").Translate(thing.Label, job.targetB.Thing.LabelShort.Named("DESTINATION"), thing.Named("THING")); + } + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + if (!pawn.Reserve(job.GetTarget(TargetIndex.A), job, 1, -1, null, errorOnFailed)) + { + return false; + } + if (Container.Isnt()) + { + if (!pawn.Reserve(job.GetTarget(TargetIndex.B), job, 1, 1, null, errorOnFailed)) + { + return false; + } + pawn.ReserveAsManyAsPossible(job.GetTargetQueue(TargetIndex.B), job); + } + UpdateEnrouteTrackers(); + pawn.ReserveAsManyAsPossible(job.GetTargetQueue(TargetIndex.A), job); + return true; + } + + protected virtual void ModifyPrepareToil(Toil toil) + { + } + + private bool TryReplaceWithFrame(TargetIndex index) + { + Thing thing = GetActor().jobs.curJob.GetTarget(index).Thing; + Building edifice = thing.Position.GetEdifice(pawn.Map); + if (edifice != null && thing is Blueprint_Build blueprint_Build && edifice is Frame frame && frame.BuildDef == blueprint_Build.BuildDef) + { + job.SetTarget(TargetIndex.B, frame); + return true; + } + return false; + } + + protected override IEnumerable MakeNewToils() + { + this.FailOnDestroyedOrNull(TargetIndex.A); + this.FailOn(delegate + { + Thing thing = GetActor().jobs.curJob.GetTarget(TargetIndex.B).Thing; + Thing thing2 = GetActor().jobs.curJob.GetTarget(TargetIndex.C).Thing; + if (thing == null) + { + return true; + } + if (thing2 != null && thing2.Destroyed && !TryReplaceWithFrame(TargetIndex.C)) + { + job.SetTarget(TargetIndex.C, null); + } + if (!thing.Spawned || (thing.Destroyed && !TryReplaceWithFrame(TargetIndex.B))) + { + if (job.targetQueueB.NullOrEmpty()) + { + return true; + } + if (!Toils_Haul.TryGetNextDestinationFromQueue(TargetIndex.C, TargetIndex.B, ThingDef, job, pawn, out var nextTarget)) + { + return true; + } + job.targetQueueB.RemoveAll((LocalTargetInfo target) => target.Thing == nextTarget); + job.targetB = nextTarget; + } + ThingOwner thingOwner = Container.TryGetInnerInteractableThingOwner(); + if (thingOwner != null && !thingOwner.CanAcceptAnyOf(ThingToCarry)) + { + return true; + } + return (Container is IHaulDestination haulDestination && !haulDestination.Accepts(ThingToCarry)) ? true : false; + }); + this.FailOnForbidden(TargetIndex.B); + this.FailOn(() => EnterPortalUtility.WasLoadingCanceled(Container)); + this.FailOn(() => TransporterUtility.WasLoadingCanceled(Container)); + this.FailOn(() => CompBiosculpterPod.WasLoadingCanceled(Container)); + this.FailOn(() => Building_SubcoreScanner.WasLoadingCancelled(Container)); + Toil getToHaulTarget = Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.ClosestTouch, canGotoSpawnedParent: true).FailOn(() => ThingToCarry.ParentHolder is MinifiedThing).FailOnSelfAndParentsDespawnedOrNull(TargetIndex.A); + Toil uninstallIfMinifiable = Toils_Construct.UninstallIfMinifiable(TargetIndex.A).FailOnSomeonePhysicallyInteracting(TargetIndex.A).FailOn(() => ThingToCarry.ParentHolder is MinifiedThing) + .FailOnSelfAndParentsDespawnedOrNull(TargetIndex.A) + .FailOnDestroyedOrNull(TargetIndex.A); + Toil startCarryingThing = Toils_Haul.StartCarryThing(TargetIndex.A, putRemainderInQueue: false, subtractNumTakenFromJobCount: true, failIfStackCountLessThanJobCount: false, reserve: true, canTakeFromInventory: true); + Toil jumpIfAlsoCollectingNextTarget = Toils_Haul.JumpIfAlsoCollectingNextTargetInQueue(getToHaulTarget, TargetIndex.A); + Toil carryToContainer = Toils_Haul.CarryHauledThingToContainer(); + yield return Toils_Jump.JumpIf(jumpIfAlsoCollectingNextTarget, () => pawn.IsCarryingThing(ThingToCarry)); + yield return getToHaulTarget; + yield return uninstallIfMinifiable; + yield return startCarryingThing; + yield return jumpIfAlsoCollectingNextTarget; + yield return carryToContainer; + yield return Toils_Goto.MoveOffTargetBlueprint(TargetIndex.B); + Toil toil = Toils_General.Wait(Duration, TargetIndex.B); + toil.WithProgressBarToilDelay(TargetIndex.B); + EffecterDef workEffecter = WorkEffecter; + if (workEffecter != null) + { + toil.WithEffect(workEffecter, TargetIndex.B); + } + SoundDef workSustainer = WorkSustainer; + if (workSustainer != null) + { + toil.PlaySustainerOrSound(workSustainer); + } + Thing destThing = job.GetTarget(TargetIndex.B).Thing; + toil.tickIntervalAction = delegate(int delta) + { + if (pawn.IsHashIntervalTick(80, delta) && destThing is Building_Grave && graveDigEffect == null) + { + graveDigEffect = EffecterDefOf.BuryPawn.Spawn(); + graveDigEffect.Trigger(destThing, destThing); + } + }; + toil.tickAction = delegate + { + graveDigEffect?.EffectTick(destThing, destThing); + }; + ModifyPrepareToil(toil); + yield return toil; + yield return Toils_Construct.MakeSolidThingFromBlueprintIfNecessary(TargetIndex.B, TargetIndex.C); + yield return Toils_Haul.DepositHauledThingInContainer(TargetIndex.B, TargetIndex.C); + yield return Toils_Haul.JumpToCarryToNextContainerIfPossible(carryToContainer, TargetIndex.C); + } + + private void UpdateEnrouteTrackers() + { + int count = job.count; + TryReserveEnroute(base.TargetThingC, ref count); + if (base.TargetB != base.TargetC) + { + TryReserveEnroute(base.TargetThingB, ref count); + } + if (job.targetQueueB == null) + { + return; + } + foreach (LocalTargetInfo item in job.targetQueueB) + { + if (!base.TargetC.HasThing || !(item == base.TargetThingC)) + { + TryReserveEnroute(item.Thing, ref count); + } + } + } + + private void TryReserveEnroute(Thing thing, ref int count) + { + if (thing is IHaulEnroute container && !thing.DestroyedOrNull()) + { + UpdateTracker(container, ref count); + } + } + + private void UpdateTracker(IHaulEnroute container, ref int count) + { + if (!ThingToCarry.DestroyedOrNull()) + { + if (job.playerForced && container.GetSpaceRemainingWithEnroute(ThingDef) == 0) + { + container.Map.enrouteManager.InterruptEnroutePawns(container, pawn); + } + int num = Mathf.Min(count, container.GetSpaceRemainingWithEnroute(ThingDef)); + if (num > 0) + { + container.Map.enrouteManager.AddEnroute(container, pawn, base.TargetThingA.def, num); + } + count -= num; + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_PrepareCaravan_GatherItems.txt` +**相似度:** 0.5905 + +```csharp +public class JobDriver_PrepareCaravan_GatherItems : JobDriver +{ + private int pickedUpFirstItemTicks = -1; + + private int toilLoops; + + private PrepareCaravanGatherState gatherState; + + private const TargetIndex ToHaulInd = TargetIndex.A; + + private const TargetIndex CarrierInd = TargetIndex.B; + + private const int MaxTicksGatherItems = 7500; + + private const int LoopBackstop = 500; + + public Thing ToHaul => job.GetTarget(TargetIndex.A).Thing; + + public Pawn Carrier => (Pawn)job.GetTarget(TargetIndex.B).Thing; + + private List Transferables => ((LordJob_FormAndSendCaravan)job.lord.LordJob).transferables; + + private TransferableOneWay Transferable + { + get + { + TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatchingDesperate(ToHaul, Transferables, TransferAsOneMode.PodsOrCaravanPacking); + if (transferableOneWay != null) + { + return transferableOneWay; + } + throw new InvalidOperationException("Could not find any matching transferable."); + } + } + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return pawn.Reserve(ToHaul, job, 1, -1, null, errorOnFailed); + } + + protected override IEnumerable MakeNewToils() + { + if (gatherState == PrepareCaravanGatherState.Unset) + { + gatherState = ((pawn.IsFormingCaravan() && (!MassUtility.IsOverEncumbered(pawn) || pawn.inventory.HasAnyUnpackedCaravanItems)) ? PrepareCaravanGatherState.Haul : PrepareCaravanGatherState.Carry); + } + if (gatherState == PrepareCaravanGatherState.Carry) + { + return MakeNewToilsCarry(); + } + return MakeNewToilsHaulInInventory(); + } + + private IEnumerable MakeNewToilsCarry() + { + this.FailOn(() => !base.Map.lordManager.lords.Contains(job.lord)); + Toil reserve = Toils_Reserve.Reserve(TargetIndex.A).FailOnDestroyedOrNull(TargetIndex.A); + yield return reserve; + bool inInventory = HaulAIUtility.IsInHaulableInventory(ToHaul); + yield return Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.Touch, inInventory); + yield return DetermineNumToHaul(); + yield return Toils_Haul.StartCarryThing(TargetIndex.A, putRemainderInQueue: false, subtractNumTakenFromJobCount: true, failIfStackCountLessThanJobCount: false, reserve: true, inInventory); + yield return AddCarriedThingToTransferables(); + yield return Toils_Haul.CheckForGetOpportunityDuplicate(reserve, TargetIndex.A, TargetIndex.None, takeFromValidStorage: true, (Thing x) => Transferable.things.Contains(x)); + Toil findCarrier = FindCarrier(); + yield return findCarrier; + yield return Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.Touch).JumpIf(() => !IsUsableCarrier(Carrier, pawn, allowColonists: true), findCarrier); + yield return Toils_General.Wait(25).JumpIf(() => !IsUsableCarrier(Carrier, pawn, allowColonists: true), findCarrier).WithProgressBarToilDelay(TargetIndex.B); + yield return PlaceTargetInCarrierInventory(); + } + + private IEnumerable MakeNewToilsHaulInInventory() + { + this.FailOn(() => !base.Map.lordManager.lords.Contains(job.lord)); + bool inInventory = HaulAIUtility.IsInHaulableInventory(ToHaul); + Toil reserve = Toils_Reserve.Reserve(TargetIndex.A).FailOnDestroyedOrNull(TargetIndex.A); + Toil findCarrier = FindCarrier(); + yield return reserve; + yield return Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.Touch, inInventory).JumpIf(IsFinishedCollectingItems, findCarrier); + yield return DetermineNumToHaul(findCarrier); + yield return Toils_Haul.StartCarryThing(TargetIndex.A, putRemainderInQueue: false, subtractNumTakenFromJobCount: true, failIfStackCountLessThanJobCount: false, reserve: true, inInventory); + yield return AddCarriedThingToTransferables(); + yield return Toils_General.Wait(25).WithProgressBarToilDelay(TargetIndex.B); + yield return HaulCaravanItemInInventory(reserve); + yield return findCarrier; + yield return Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.Touch).JumpIf(() => !IsUsableCarrier(Carrier, pawn, allowColonists: true), findCarrier); + yield return Toils_General.Wait(25).JumpIf(() => !IsUsableCarrier(Carrier, pawn, allowColonists: true), findCarrier).WithProgressBarToilDelay(TargetIndex.B); + yield return AddHauledItemsToCarrier(findCarrier); + } + + private Toil DetermineNumToHaul(Toil findCarrier = null) + { + Toil toil = ToilMaker.MakeToil("DetermineNumToHaul"); + toil.initAction = delegate + { + int num = GatherItemsForCaravanUtility.CountLeftToTransfer(pawn, Transferable, job.lord); + if (pawn.carryTracker.CarriedThing != null) + { + num -= pawn.carryTracker.CarriedThing.stackCount; + } + if (num <= 0) + { + if (findCarrier == null || !pawn.inventory.HasAnyUnpackedCaravanItems) + { + pawn.jobs.EndCurrentJob(JobCondition.Succeeded); + } + else + { + pawn.jobs.curDriver.JumpToToil(findCarrier); + } + } + else + { + job.count = num; + } + }; + toil.defaultCompleteMode = ToilCompleteMode.Instant; + toil.atomicWithPrevious = true; + return toil; + } + + private Toil AddCarriedThingToTransferables() + { + Toil toil = ToilMaker.MakeToil("AddCarriedThingToTransferables"); + toil.initAction = delegate + { + TransferableOneWay transferable = Transferable; + if (!transferable.things.Contains(pawn.carryTracker.CarriedThing)) + { + transferable.things.Add(pawn.carryTracker.CarriedThing); + } + }; + toil.defaultCompleteMode = ToilCompleteMode.Instant; + toil.atomicWithPrevious = true; + return toil; + } + + private Toil FindCarrier() + { + Toil toil = ToilMaker.MakeToil("FindCarrier"); + toil.initAction = delegate + { + Pawn pawn = FindBestCarrier(onlyAnimals: true); + if (pawn == null) + { + bool flag = base.pawn.GetLord() == job.lord; + if (flag && !MassUtility.IsOverEncumbered(base.pawn)) + { + pawn = base.pawn; + } + else + { + pawn = FindBestCarrier(onlyAnimals: false); + if (pawn == null) + { + if (flag) + { + pawn = base.pawn; + } + else + { + IEnumerable source = job.lord.ownedPawns.Where((Pawn x) => IsUsableCarrier(x, base.pawn, allowColonists: true)); + if (!source.Any()) + { + EndJobWith(JobCondition.Incompletable); + return; + } + pawn = source.RandomElement(); + } + } + } + } + job.SetTarget(TargetIndex.B, pawn); + }; + return toil; + } + + private bool IsFinishedCollectingItems() + { + if (!MassUtility.IsOverEncumbered(pawn)) + { + if (pickedUpFirstItemTicks > -1) + { + return Find.TickManager.TicksGame > pickedUpFirstItemTicks + 7500; + } + return false; + } + return true; + } + + private Toil HaulCaravanItemInInventory(Toil reserve) + { + Toil toil = ToilMaker.MakeToil("HaulCaravanItemInInventory"); + toil.initAction = delegate + { + if (pickedUpFirstItemTicks == -1) + { + pickedUpFirstItemTicks = Find.TickManager.TicksGame; + } + Transferable.AdjustTo(Mathf.Max(Transferable.CountToTransfer - pawn.carryTracker.CarriedThing.stackCount, 0)); + pawn.inventory.AddHauledCaravanItem(pawn.carryTracker.CarriedThing); + if (!IsFinishedCollectingItems()) + { + SetNewHaulTargetAndJumpToReserve(reserve); + } + }; + return toil; + } + + private void SetNewHaulTargetAndJumpToReserve(Toil reserve) + { + if (CheckToilLoopBackstop()) + { + Thing thing = GatherItemsForCaravanUtility.FindThingToHaul(pawn, pawn.GetLord()); + if (thing != null) + { + job.SetTarget(TargetIndex.A, thing); + pawn.jobs.curDriver.JumpToToil(reserve); + } + } + } + + private Toil AddHauledItemsToCarrier(Toil findCarrier) + { + Toil toil = ToilMaker.MakeToil("AddHauledItemsToCarrier"); + toil.initAction = delegate + { + if (Carrier == pawn) + { + pawn.inventory.ClearHaulingCaravanCache(); + } + else + { + pawn.inventory.TransferCaravanItemsToCarrier(Carrier.inventory); + if (pawn.inventory.HasAnyUnpackedCaravanItems && CheckToilLoopBackstop()) + { + pawn.jobs.curDriver.JumpToToil(findCarrier); + } + } + }; + return toil; + } + + private bool CheckToilLoopBackstop() + { + if (++toilLoops > 500) + { + Log.Error("Prepare caravan gather items job for pawn " + pawn.Label + " looped through toils too many times"); + EndJobWith(JobCondition.Errored); + return false; + } + return true; + } + + private Toil PlaceTargetInCarrierInventory() + { + Toil toil = ToilMaker.MakeToil("PlaceTargetInCarrierInventory"); + toil.initAction = delegate + { + Pawn_CarryTracker carryTracker = pawn.carryTracker; + Thing carriedThing = carryTracker.CarriedThing; + if (carryTracker.innerContainer.Count == 0) + { + carryTracker.pawn.Drawer.renderer.SetAllGraphicsDirty(); + } + Transferable.AdjustTo(Mathf.Max(Transferable.CountToTransfer - carriedThing.stackCount, 0)); + carryTracker.innerContainer.TryTransferToContainer(carriedThing, Carrier.inventory.innerContainer, carriedThing.stackCount, out var resultingTransferredItem); + CompForbiddable compForbiddable = resultingTransferredItem?.TryGetComp(); + if (compForbiddable != null) + { + compForbiddable.Forbidden = false; + } + }; + return toil; + } + + public static bool IsUsableCarrier(Pawn p, Pawn forPawn, bool allowColonists) + { + if (!p.IsFormingCaravan()) + { + return false; + } + if (p == forPawn) + { + return true; + } + if (p.DestroyedOrNull() || !p.Spawned || p.inventory.UnloadEverything || !forPawn.CanReach(p, PathEndMode.Touch, Danger.Deadly)) + { + return false; + } + if (allowColonists && p.IsColonist) + { + return true; + } + if ((p.RaceProps.packAnimal || p.HostFaction == Faction.OfPlayer) && !p.IsBurning() && !p.Downed) + { + return !MassUtility.IsOverEncumbered(p); + } + return false; + } + + private float GetCarrierScore(Pawn p) + { + float lengthHorizontal = (p.Position - pawn.Position).LengthHorizontal; + float num = MassUtility.EncumbrancePercent(p); + return 1f - num - lengthHorizontal / 10f * 0.2f; + } + + private Pawn FindBestCarrier(bool onlyAnimals) + { + Lord lord = job.lord; + Pawn pawn = null; + float num = 0f; + if (lord != null) + { + for (int i = 0; i < lord.ownedPawns.Count; i++) + { + Pawn pawn2 = lord.ownedPawns[i]; + if (pawn2 != base.pawn && (!onlyAnimals || pawn2.RaceProps.Animal) && IsUsableCarrier(pawn2, base.pawn, allowColonists: false)) + { + float carrierScore = GetCarrierScore(pawn2); + if (pawn == null || carrierScore > num) + { + pawn = pawn2; + num = carrierScore; + } + } + } + } + return pawn; + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref pickedUpFirstItemTicks, "pickedUpFirstItemTicks", 0); + Scribe_Values.Look(ref toilLoops, "toilLoops", 0); + Scribe_Values.Look(ref gatherState, "gatherState", PrepareCaravanGatherState.Unset); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\JobDriver_CarryToCryptosleepCasket.txt` +**相似度:** 0.5506 + +```csharp +public class JobDriver_CarryToCryptosleepCasket : JobDriver +{ + private const TargetIndex TakeeInd = TargetIndex.A; + + private const TargetIndex DropPodInd = TargetIndex.B; + + protected Pawn Takee => (Pawn)job.GetTarget(TargetIndex.A).Thing; + + protected Building_CryptosleepCasket DropPod => (Building_CryptosleepCasket)job.GetTarget(TargetIndex.B).Thing; + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + if (pawn.Reserve(Takee, job, 1, -1, null, errorOnFailed)) + { + return pawn.Reserve(DropPod, job, 1, -1, null, errorOnFailed); + } + return false; + } + + protected override IEnumerable MakeNewToils() + { + this.FailOnDestroyedOrNull(TargetIndex.A); + this.FailOnDestroyedOrNull(TargetIndex.B); + this.FailOnAggroMentalState(TargetIndex.A); + this.FailOn(() => !DropPod.Accepts(Takee)); + Toil goToTakee = Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.OnCell).FailOnDestroyedNullOrForbidden(TargetIndex.A).FailOnDespawnedNullOrForbidden(TargetIndex.B) + .FailOn(() => DropPod.GetDirectlyHeldThings().Count > 0) + .FailOn(() => !pawn.CanReach(Takee, PathEndMode.OnCell, Danger.Deadly)) + .FailOnSomeonePhysicallyInteracting(TargetIndex.A); + Toil startCarryingTakee = Toils_Haul.StartCarryThing(TargetIndex.A); + Toil goToThing = Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.InteractionCell); + yield return Toils_Jump.JumpIf(goToThing, () => pawn.IsCarryingPawn(Takee)); + yield return goToTakee; + yield return startCarryingTakee; + yield return goToThing; + Toil toil = Toils_General.Wait(500, TargetIndex.B); + toil.FailOnCannotTouch(TargetIndex.B, PathEndMode.InteractionCell); + toil.WithProgressBarToilDelay(TargetIndex.B); + yield return toil; + Toil toil2 = ToilMaker.MakeToil("MakeNewToils"); + toil2.initAction = delegate + { + DropPod.TryAcceptThing(Takee); + }; + toil2.defaultCompleteMode = ToilCompleteMode.Instant; + yield return toil2; + } + + public override object[] TaleParameters() + { + return new object[2] { pawn, Takee }; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\JobDriver_HaulToAtomizer.txt` +**相似度:** 0.5312 + +```csharp +public class JobDriver_HaulToAtomizer : JobDriver +{ + private const TargetIndex AtomizerInd = TargetIndex.A; + + private const TargetIndex WastepackInd = TargetIndex.B; + + private const TargetIndex ChargerCellInd = TargetIndex.C; + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + pawn.ReserveAsManyAsPossible(job.GetTargetQueue(TargetIndex.B), job); + return pawn.Reserve(job.GetTarget(TargetIndex.A), job, 1, -1, null, errorOnFailed); + } + + protected override IEnumerable MakeNewToils() + { + this.FailOnDespawnedNullOrForbidden(TargetIndex.A); + AddEndCondition(() => (base.TargetThingA.TryGetComp().SpaceLeft > 0) ? JobCondition.Ongoing : JobCondition.Succeeded); + Toil clearQueue = Toils_JobTransforms.ClearDespawnedNullOrForbiddenQueuedTargets(TargetIndex.B); + yield return clearQueue; + yield return Toils_JobTransforms.SucceedOnNoTargetInQueue(TargetIndex.B); + yield return Toils_JobTransforms.ExtractNextTargetFromQueue(TargetIndex.B); + yield return Toils_Reserve.Reserve(TargetIndex.B); + yield return Toils_Goto.GotoThing(TargetIndex.B, PathEndMode.ClosestTouch).FailOnSomeonePhysicallyInteracting(TargetIndex.B); + yield return Toils_Haul.StartCarryThing(TargetIndex.B, putRemainderInQueue: false, subtractNumTakenFromJobCount: true); + yield return Toils_Haul.CheckForGetOpportunityDuplicate(clearQueue, TargetIndex.B, TargetIndex.None, takeFromValidStorage: true); + yield return Toils_Goto.GotoThing(TargetIndex.A, PathEndMode.InteractionCell); + yield return Toils_Haul.DepositHauledThingInContainer(TargetIndex.A, TargetIndex.B); + yield return Toils_Jump.Jump(clearQueue); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\Verse.AI\JobDriver_PickupToHold.txt` +**相似度:** 0.5219 + +```csharp +public class JobDriver_PickupToHold : JobDriver +{ + private const TargetIndex HeldItemInd = TargetIndex.A; + + public static bool TryMakePreToilReservations(JobDriver driver, bool errorOnFailed) + { + driver.pawn.Map.pawnDestinationReservationManager.Reserve(driver.pawn, driver.job, driver.job.GetTarget(TargetIndex.A).Cell); + return driver.pawn.Reserve(driver.job.GetTarget(TargetIndex.A), driver.job, 1, -1, null, errorOnFailed); + } + + public static IEnumerable Toils(JobDriver driver, TargetIndex HeldItem = TargetIndex.A, bool subtractNumTakenFromJobCount = true) + { + driver.FailOn(() => !driver.GetActor().health.capacities.CapableOf(PawnCapacityDefOf.Manipulation)); + driver.FailOnDestroyedOrNull(HeldItem); + driver.FailOnForbidden(HeldItem); + Toil end = Toils_General.Label(); + yield return Toils_Jump.JumpIf(end, () => driver.GetActor().IsCarryingThing(driver.GetActor().CurJob.GetTarget(HeldItem).Thing)); + yield return Toils_Goto.GotoThing(HeldItem, PathEndMode.ClosestTouch).FailOnSomeonePhysicallyInteracting(HeldItem); + yield return Toils_Haul.StartCarryThing(HeldItem, putRemainderInQueue: false, subtractNumTakenFromJobCount); + yield return end; + } + + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return TryMakePreToilReservations(this, errorOnFailed); + } + + protected override IEnumerable MakeNewToils() + { + return Toils(this); + } +} +``` \ No newline at end of file diff --git a/MCP/vector_cache/StatDef.txt b/MCP/vector_cache/StatDef.txt new file mode 100644 index 00000000..b26afb92 --- /dev/null +++ b/MCP/vector_cache/StatDef.txt @@ -0,0 +1,502 @@ +根据向量相似度分析,与 'StatDef' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\StatDef.txt` + +```csharp +public class StatDef : Def +{ + private static HashSet mutableStats; + + public StatCategoryDef category; + + public Type workerClass = typeof(StatWorker); + + public string labelForFullStatList; + + public bool forInformationOnly; + + [MustTranslate] + private string offsetLabel; + + public float hideAtValue = -2.1474836E+09f; + + public bool alwaysHide; + + public bool showNonAbstract = true; + + public bool showIfUndefined = true; + + public bool showOnPawns = true; + + public bool showOnHumanlikes = true; + + public bool showOnNonWildManHumanlikes = true; + + public bool showOnAnimals = true; + + public bool showOnMechanoids = true; + + public bool showOnNonWorkTables = true; + + public bool showOnEntities = true; + + public bool showOnDrones = true; + + public bool showOnNonPowerPlants = true; + + public bool showOnDefaultValue = true; + + public bool showOnUnhaulables = true; + + public bool showOnUntradeables = true; + + public List showIfModsLoaded; + + public List showIfModsLoadedAny; + + public List showIfHediffsPresent; + + public bool neverDisabled; + + public bool showZeroBaseValue; + + public bool showOnSlavesOnly; + + public bool showOnPlayerMechanoids; + + public DevelopmentalStage showDevelopmentalStageFilter = DevelopmentalStage.Baby | DevelopmentalStage.Child | DevelopmentalStage.Adult; + + public bool hideInClassicMode; + + public List showOnPawnKind; + + public bool overridesHideStats; + + public int displayPriorityInCategory; + + public ToStringNumberSense toStringNumberSense = ToStringNumberSense.Absolute; + + public ToStringStyle toStringStyle; + + private ToStringStyle? toStringStyleUnfinalized; + + [MustTranslate] + public string formatString; + + [MustTranslate] + public string formatStringUnfinalized; + + public bool finalizeEquippedStatOffset = true; + + [MustTranslate] + public string statFactorsExplanationHeader; + + public float defaultBaseValue = 1f; + + public List skillNeedOffsets; + + public float noSkillOffset; + + public List capacityOffsets; + + public List statFactors; + + public bool applyFactorsIfNegative = true; + + public List skillNeedFactors; + + public float noSkillFactor = 1f; + + public List capacityFactors; + + public SimpleCurve postProcessCurve; + + public List postProcessStatFactors; + + public float minValue = -9999999f; + + public float maxValue = 9999999f; + + public float valueIfMissing; + + public bool roundValue; + + public float roundToFiveOver = float.MaxValue; + + public bool minifiedThingInherits; + + public bool supressDisabledError; + + public bool cacheable; + + public bool displayMaxWhenAboveOrEqual; + + public bool scenarioRandomizable; + + public SkillDef disableIfSkillDisabled; + + public List parts; + + [Unsaved(false)] + private StatWorker workerInt; + + [Unsaved(false)] + public bool immutable; + + public StatWorker Worker + { + get + { + if (workerInt == null) + { + if (parts != null) + { + for (int i = 0; i < parts.Count; i++) + { + parts[i].parentStat = this; + } + } + workerInt = (StatWorker)Activator.CreateInstance(workerClass); + workerInt.InitSetStat(this); + } + return workerInt; + } + } + + public ToStringStyle ToStringStyleUnfinalized + { + get + { + if (!toStringStyleUnfinalized.HasValue) + { + return toStringStyle; + } + return toStringStyleUnfinalized.Value; + } + } + + public string LabelForFullStatList + { + get + { + if (!labelForFullStatList.NullOrEmpty()) + { + return labelForFullStatList; + } + return label; + } + } + + public string LabelForFullStatListCap => LabelForFullStatList.CapitalizeFirst(this); + + public string OffsetLabel => offsetLabel ?? label; + + public string OffsetLabelCap => OffsetLabel.CapitalizeFirst(); + + public override IEnumerable ConfigErrors() + { + foreach (string item in base.ConfigErrors()) + { + yield return item; + } + if (capacityFactors != null) + { + foreach (PawnCapacityFactor capacityFactor in capacityFactors) + { + if (capacityFactor.weight > 1f) + { + yield return defName + " has activity factor with weight > 1"; + } + } + } + if (parts == null) + { + yield break; + } + for (int i = 0; i < parts.Count; i++) + { + foreach (string item2 in parts[i].ConfigErrors()) + { + yield return defName + " has error in StatPart " + parts[i].ToString() + ": " + item2; + } + } + } + + public string ValueToString(float val, ToStringNumberSense numberSense = ToStringNumberSense.Absolute, bool finalized = true) + { + return Worker.ValueToString(val, finalized, numberSense); + } + + public static StatDef Named(string defName) + { + return DefDatabase.GetNamed(defName); + } + + public override void PostLoad() + { + base.PostLoad(); + if (parts != null) + { + List partsCopy = parts.ToList(); + parts.SortBy((StatPart x) => 0f - x.priority, (StatPart x) => partsCopy.IndexOf(x)); + } + } + + public T GetStatPart() where T : StatPart + { + return parts.OfType().FirstOrDefault(); + } + + public bool CanShowWithLoadedMods() + { + if (!showIfModsLoaded.NullOrEmpty()) + { + for (int i = 0; i < showIfModsLoaded.Count; i++) + { + if (!ModsConfig.IsActive(showIfModsLoaded[i])) + { + return false; + } + } + } + if (!showIfModsLoadedAny.NullOrEmpty()) + { + bool result = false; + for (int j = 0; j < showIfModsLoadedAny.Count; j++) + { + if (ModsConfig.IsActive(showIfModsLoadedAny[j])) + { + result = true; + break; + } + } + return result; + } + return true; + } + + private static void PopulateMutableStats() + { + mutableStats = new HashSet(); + foreach (TraitDef item in DefDatabase.AllDefsListForReading) + { + foreach (TraitDegreeData degreeData in item.degreeDatas) + { + AddStatsFromModifiers(degreeData.statOffsets); + AddStatsFromModifiers(degreeData.statFactors); + } + } + foreach (HediffDef item2 in DefDatabase.AllDefsListForReading) + { + if (item2.stages == null) + { + continue; + } + foreach (HediffStage stage in item2.stages) + { + AddStatsFromModifiers(stage.statOffsets); + AddStatsFromModifiers(stage.statFactors); + if (stage.statOffsetEffectMultiplier != null) + { + mutableStats.Add(stage.statOffsetEffectMultiplier); + } + if (stage.statFactorEffectMultiplier != null) + { + mutableStats.Add(stage.statFactorEffectMultiplier); + } + if (stage.capacityFactorEffectMultiplier != null) + { + mutableStats.Add(stage.capacityFactorEffectMultiplier); + } + } + } + foreach (PreceptDef item3 in DefDatabase.AllDefsListForReading) + { + AddStatsFromModifiers(item3.statOffsets); + AddStatsFromModifiers(item3.statFactors); + if (item3.roleEffects != null) + { + foreach (RoleEffect roleEffect in item3.roleEffects) + { + if (roleEffect is RoleEffect_PawnStatOffset roleEffect_PawnStatOffset) + { + mutableStats.Add(roleEffect_PawnStatOffset.statDef); + } + if (roleEffect is RoleEffect_PawnStatFactor roleEffect_PawnStatFactor) + { + mutableStats.Add(roleEffect_PawnStatFactor.statDef); + } + } + } + if (item3.abilityStatFactors == null) + { + continue; + } + foreach (AbilityStatModifiers abilityStatFactor in item3.abilityStatFactors) + { + AddStatsFromModifiers(abilityStatFactor.modifiers); + } + } + foreach (GeneDef item4 in DefDatabase.AllDefsListForReading) + { + AddStatsFromModifiers(item4.statOffsets); + AddStatsFromModifiers(item4.statFactors); + if (item4.conditionalStatAffecters == null) + { + continue; + } + foreach (ConditionalStatAffecter conditionalStatAffecter in item4.conditionalStatAffecters) + { + AddStatsFromModifiers(conditionalStatAffecter.statOffsets); + AddStatsFromModifiers(conditionalStatAffecter.statFactors); + } + } + foreach (ThingDef item5 in DefDatabase.AllDefsListForReading) + { + AddStatsFromModifiers(item5.equippedStatOffsets); + if (!item5.HasAssignableCompFrom(typeof(CompFacility))) + { + continue; + } + CompProperties_Facility compProperties = item5.GetCompProperties(); + if (compProperties?.statOffsets != null) + { + AddStatsFromModifiers(compProperties.statOffsets); + } + if (!(compProperties is CompProperties_FacilityQualityBased compProperties_FacilityQualityBased)) + { + continue; + } + foreach (StatDef key in compProperties_FacilityQualityBased.statOffsetsPerQuality.Keys) + { + mutableStats.Add(key); + } + } + foreach (WeaponTraitDef item6 in DefDatabase.AllDefsListForReading) + { + AddStatsFromModifiers(item6.equippedStatOffsets); + } + foreach (LifeStageDef item7 in DefDatabase.AllDefsListForReading) + { + AddStatsFromModifiers(item7.statFactors); + AddStatsFromModifiers(item7.statOffsets); + } + foreach (InspirationDef item8 in DefDatabase.AllDefsListForReading) + { + AddStatsFromModifiers(item8.statOffsets); + AddStatsFromModifiers(item8.statFactors); + } + static void AddStatsFromModifiers(List mods) + { + if (mods != null) + { + mutableStats.AddRange(mods.Select((StatModifier mod) => mod.stat)); + } + } + } + + public bool IsImmutable() + { + if (workerClass != typeof(StatWorker)) + { + return false; + } + if (!skillNeedOffsets.NullOrEmpty() || !skillNeedFactors.NullOrEmpty()) + { + return false; + } + if (!capacityOffsets.NullOrEmpty() || !capacityFactors.NullOrEmpty()) + { + return false; + } + if (!statFactors.NullOrEmpty()) + { + return false; + } + if (!parts.NullOrEmpty()) + { + return false; + } + if (!postProcessStatFactors.NullOrEmpty()) + { + return false; + } + if (mutableStats.Contains(this)) + { + return false; + } + return true; + } + + public static void SetImmutability() + { + PopulateMutableStats(); + foreach (StatDef item in DefDatabase.AllDefsListForReading) + { + item.immutable = item.IsImmutable(); + item.Worker.SetCacheability(item.immutable); + } + } + + public static void ResetStaticData() + { + mutableStats = null; + foreach (StatDef item in DefDatabase.AllDefsListForReading) + { + item.immutable = false; + item.Worker.DeleteStatCache(); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Core\Defs\Stats\Stats_Building_Special.xml` +**相似度:** 0.5742 + +```xml + + WorkToBuild + + The base amount of work it takes to build a structure, once all materials are gathered.\n\nThe work required to deconstruct the structure is also based on this. + Building + 1 + 0 + WorkAmount + 300 + false + true + 3101 + +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\Royalty\Defs\Stats\Stats_Basics_Special.xml` +**相似度:** 0.5197 + +```xml + + MeditationPlantGrowthOffset + + An offset applied to the growth rate of plants, like anima grass, from meditation. This value can change based on the number of artificial buildings nearby. + Meditation + 0 + false + false + false + 4000 + PercentZero + +
  • + 27.9 + + +
  • (0, 0.0)
  • +
  • (5, -0.08)
  • +
  • (10, -0.15)
  • +
  • (50, -0.3)
  • + + + +
    +
    +``` \ No newline at end of file diff --git a/MCP/vector_cache/WorkGiver_Scanner.txt b/MCP/vector_cache/WorkGiver_Scanner.txt new file mode 100644 index 00000000..01ee366c --- /dev/null +++ b/MCP/vector_cache/WorkGiver_Scanner.txt @@ -0,0 +1,507 @@ +根据向量相似度分析,与 'WorkGiver_Scanner' 最相关的代码定义如下: + +--- +**文件路径 (精确匹配):** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_Scanner.txt` + +```csharp +public abstract class WorkGiver_Scanner : WorkGiver +{ + public virtual ThingRequest PotentialWorkThingRequest => ThingRequest.ForGroup(ThingRequestGroup.Undefined); + + public virtual int MaxRegionsToScanBeforeGlobalSearch => -1; + + public virtual bool Prioritized => false; + + public virtual bool AllowUnreachable => false; + + public virtual PathEndMode PathEndMode => PathEndMode.Touch; + + public virtual IEnumerable PotentialWorkCellsGlobal(Pawn pawn) + { + return Enumerable.Empty(); + } + + public virtual IEnumerable PotentialWorkThingsGlobal(Pawn pawn) + { + return null; + } + + public virtual Danger MaxPathDanger(Pawn pawn) + { + return pawn.NormalMaxDanger(); + } + + public virtual bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + return JobOnThing(pawn, t, forced) != null; + } + + public virtual string JobInfo(Pawn pawn, Job job) + { + return string.Empty; + } + + public virtual Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + return null; + } + + public virtual bool HasJobOnCell(Pawn pawn, IntVec3 c, bool forced = false) + { + return JobOnCell(pawn, c, forced) != null; + } + + public virtual Job JobOnCell(Pawn pawn, IntVec3 cell, bool forced = false) + { + return null; + } + + public virtual float GetPriority(Pawn pawn, TargetInfo t) + { + return 0f; + } + + public virtual string PostProcessedGerund(Job job) + { + return def.gerund; + } + + public float GetPriority(Pawn pawn, IntVec3 cell) + { + return GetPriority(pawn, new TargetInfo(cell, pawn.Map)); + } + + public virtual ReservationLayerDef GetReservationLayer(Pawn pawn, LocalTargetInfo target) + { + return null; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_HaulToSubcoreScanner.txt` +**相似度:** 0.5742 + +```csharp +public class WorkGiver_HaulToSubcoreScanner : WorkGiver_Scanner +{ + public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForGroup(ThingRequestGroup.SubcoreScanner); + + public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (!ModLister.CheckBiotech("Haul to subcore scanner")) + { + return false; + } + if (!(t is Building_SubcoreScanner { State: SubcoreScannerState.WaitingForIngredients } building_SubcoreScanner)) + { + return false; + } + if (!pawn.CanReserve(t, 1, -1, null, forced)) + { + return false; + } + return FindIngredients(pawn, building_SubcoreScanner).Thing != null; + } + + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (!(t is Building_SubcoreScanner { State: SubcoreScannerState.WaitingForIngredients } building_SubcoreScanner)) + { + return null; + } + ThingCount thingCount = FindIngredients(pawn, building_SubcoreScanner); + if (thingCount.Thing != null) + { + Job job = HaulAIUtility.HaulToContainerJob(pawn, thingCount.Thing, t); + job.count = Mathf.Min(job.count, thingCount.Count); + return job; + } + return null; + } + + private ThingCount FindIngredients(Pawn pawn, Building_SubcoreScanner scanner) + { + Thing thing = GenClosest.ClosestThingReachable(pawn.Position, pawn.Map, ThingRequest.ForGroup(ThingRequestGroup.HaulableEver), PathEndMode.ClosestTouch, TraverseParms.For(pawn), 9999f, Validator); + if (thing == null) + { + return default(ThingCount); + } + int requiredCountOf = scanner.GetRequiredCountOf(thing.def); + return new ThingCount(thing, Mathf.Min(thing.stackCount, requiredCountOf)); + bool Validator(Thing x) + { + if (!pawn.CanReserve(x)) + { + return false; + } + if (x.IsForbidden(pawn)) + { + return false; + } + return scanner.CanAcceptIngredient(x); + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_HaulToBiosculpterPod.txt` +**相似度:** 0.5453 + +```csharp +public class WorkGiver_HaulToBiosculpterPod : WorkGiver_Scanner +{ + public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForDef(ThingDefOf.BiosculpterPod); + + public override PathEndMode PathEndMode => PathEndMode.Touch; + + public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (!ModLister.CheckIdeology("Biosculpting")) + { + return false; + } + if (!pawn.CanReserve(t, 1, -1, null, forced)) + { + return false; + } + if (pawn.Map.designationManager.DesignationOn(t, DesignationDefOf.Deconstruct) != null) + { + return false; + } + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (compBiosculpterPod == null || !compBiosculpterPod.PowerOn || compBiosculpterPod.State != 0 || (!forced && !compBiosculpterPod.autoLoadNutrition)) + { + return false; + } + if (t.IsBurning()) + { + return false; + } + if (compBiosculpterPod.RequiredNutritionRemaining > 0f) + { + if (FindNutrition(pawn, compBiosculpterPod).Thing == null) + { + JobFailReason.Is("NoFood".Translate()); + return false; + } + return true; + } + return false; + } + + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + CompBiosculpterPod compBiosculpterPod = t.TryGetComp(); + if (compBiosculpterPod == null) + { + return null; + } + if (compBiosculpterPod.RequiredNutritionRemaining > 0f) + { + ThingCount thingCount = FindNutrition(pawn, compBiosculpterPod); + if (thingCount.Thing != null) + { + Job job = HaulAIUtility.HaulToContainerJob(pawn, thingCount.Thing, t); + job.count = Mathf.Min(job.count, thingCount.Count); + return job; + } + } + return null; + } + + private ThingCount FindNutrition(Pawn pawn, CompBiosculpterPod pod) + { + Thing thing = GenClosest.ClosestThingReachable(pawn.Position, pawn.Map, ThingRequest.ForGroup(ThingRequestGroup.FoodSourceNotPlantOrTree), PathEndMode.ClosestTouch, TraverseParms.For(pawn), 9999f, Validator); + if (thing == null) + { + return default(ThingCount); + } + int b = Mathf.CeilToInt(pod.RequiredNutritionRemaining / thing.GetStatValue(StatDefOf.Nutrition)); + return new ThingCount(thing, Mathf.Min(thing.stackCount, b)); + bool Validator(Thing x) + { + if (x.IsForbidden(pawn) || !pawn.CanReserve(x)) + { + return false; + } + if (!pod.CanAcceptNutrition(x)) + { + return false; + } + return true; + } + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_ConstructFinishFrames.txt` +**相似度:** 0.5184 + +```csharp +public class WorkGiver_ConstructFinishFrames : WorkGiver_Scanner +{ + public override PathEndMode PathEndMode => PathEndMode.Touch; + + public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForGroup(ThingRequestGroup.BuildingFrame); + + public override Danger MaxPathDanger(Pawn pawn) + { + return Danger.Deadly; + } + + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (t.Faction != pawn.Faction) + { + return null; + } + if (!(t is Frame frame)) + { + return null; + } + if (!frame.IsCompleted()) + { + return null; + } + if (!GenConstruct.CanTouchTargetFromValidCell(frame, pawn)) + { + return null; + } + if (GenConstruct.FirstBlockingThing(frame, pawn) != null) + { + return GenConstruct.HandleBlockingThingJob(frame, pawn, forced); + } + if (!GenConstruct.CanConstruct(frame, pawn, checkSkills: true, forced)) + { + return null; + } + return JobMaker.MakeJob(JobDefOf.FinishFrame, frame); + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_CookFillHopper.txt` +**相似度:** 0.5093 + +```csharp +public class WorkGiver_CookFillHopper : WorkGiver_Scanner +{ + private static string TheOnlyAvailableFoodIsInStorageOfHigherPriorityTrans; + + private static string NoFoodToFillHopperTrans; + + public override ThingRequest PotentialWorkThingRequest => ThingRequest.ForDef(ThingDefOf.Hopper); + + public override PathEndMode PathEndMode => PathEndMode.ClosestTouch; + + public WorkGiver_CookFillHopper() + { + if (TheOnlyAvailableFoodIsInStorageOfHigherPriorityTrans == null) + { + TheOnlyAvailableFoodIsInStorageOfHigherPriorityTrans = "TheOnlyAvailableFoodIsInStorageOfHigherPriority".Translate(); + } + if (NoFoodToFillHopperTrans == null) + { + NoFoodToFillHopperTrans = "NoFoodToFillHopper".Translate(); + } + } + + public override Job JobOnThing(Pawn pawn, Thing thing, bool forced = false) + { + if (!(thing is ISlotGroupParent hopperSgp)) + { + return null; + } + if (!pawn.CanReserve(thing.Position)) + { + return null; + } + float num = 0f; + List list = pawn.Map.thingGrid.ThingsListAt(thing.Position); + for (int i = 0; i < list.Count; i++) + { + Thing thing2 = list[i]; + if (Building_NutrientPasteDispenser.IsAcceptableFeedstock(thing2.def)) + { + num = (float)thing2.stackCount / (float)thing2.def.stackLimit; + } + } + if (num > 0.35f) + { + JobFailReason.Is("AlreadyFilledLower".Translate()); + return null; + } + return HopperFillFoodJob(pawn, hopperSgp, forced); + } + + public static Job HopperFillFoodJob(Pawn pawn, ISlotGroupParent hopperSgp, bool forced) + { + Building building = (Building)hopperSgp; + if (!pawn.CanReserveAndReach(building.Position, PathEndMode.Touch, pawn.NormalMaxDanger())) + { + return null; + } + ThingDef thingDef = null; + Thing firstItem = building.Position.GetFirstItem(building.Map); + if (firstItem != null) + { + if (!Building_NutrientPasteDispenser.IsAcceptableFeedstock(firstItem.def)) + { + if (firstItem.IsForbidden(pawn)) + { + return null; + } + return HaulAIUtility.HaulAsideJobFor(pawn, firstItem); + } + thingDef = firstItem.def; + } + List list = ((thingDef != null) ? pawn.Map.listerThings.ThingsOfDef(thingDef) : pawn.Map.listerThings.ThingsInGroup(ThingRequestGroup.FoodSourceNotPlantOrTree)); + bool flag = false; + for (int i = 0; i < list.Count; i++) + { + Thing thing = list[i]; + if (!thing.def.IsNutritionGivingIngestible || (thing.def.ingestible.preferability != FoodPreferability.RawBad && thing.def.ingestible.preferability != FoodPreferability.RawTasty) || !HaulAIUtility.PawnCanAutomaticallyHaul(pawn, thing, forced) || !pawn.Map.haulDestinationManager.SlotGroupAt(building.Position).Settings.AllowedToAccept(thing)) + { + continue; + } + if ((int)StoreUtility.CurrentStoragePriorityOf(thing, forced) >= (int)hopperSgp.GetSlotGroup().Settings.Priority) + { + flag = true; + JobFailReason.Is(TheOnlyAvailableFoodIsInStorageOfHigherPriorityTrans); + continue; + } + Job job = HaulAIUtility.HaulToCellStorageJob(pawn, thing, building.Position, fitInStoreCell: true); + if (job != null) + { + return job; + } + } + if (!flag) + { + JobFailReason.Is(NoFoodToFillHopperTrans); + } + return null; + } +} +``` +--- +**文件路径:** `C:\Steam\steamapps\common\RimWorld\Data\dll1.6\RimWorld\WorkGiver_InteractAnimal.txt` +**相似度:** 0.5082 + +```csharp +public abstract class WorkGiver_InteractAnimal : WorkGiver_Scanner +{ + protected static string NoUsableFoodTrans; + + protected static string AnimalInteractedTooRecentlyTrans; + + private static string CantInteractAnimalDownedTrans; + + private static string CantInteractAnimalAsleepTrans; + + private static string CantInteractAnimalBusyTrans; + + protected bool canInteractWhileSleeping; + + public override PathEndMode PathEndMode => PathEndMode.OnCell; + + public static void ResetStaticData() + { + NoUsableFoodTrans = "NoUsableFood".Translate(); + AnimalInteractedTooRecentlyTrans = "AnimalInteractedTooRecently".Translate(); + CantInteractAnimalDownedTrans = "CantInteractAnimalDowned".Translate(); + CantInteractAnimalAsleepTrans = "CantInteractAnimalAsleep".Translate(); + CantInteractAnimalBusyTrans = "CantInteractAnimalBusy".Translate(); + } + + protected virtual bool CanInteractWithAnimal(Pawn pawn, Pawn animal, bool forced) + { + if (CanInteractWithAnimal(pawn, animal, out var jobFailReason, forced, canInteractWhileSleeping)) + { + return true; + } + if (jobFailReason != null) + { + JobFailReason.Is(jobFailReason); + } + return false; + } + + public static bool CanInteractWithAnimal(Pawn pawn, Pawn animal, out string jobFailReason, bool forced, bool canInteractWhileSleeping = false, bool ignoreSkillRequirements = false, bool canInteractWhileRoaming = false) + { + jobFailReason = null; + if (!pawn.CanReserve(animal, 1, -1, null, forced)) + { + return false; + } + if (animal.Downed) + { + jobFailReason = CantInteractAnimalDownedTrans; + return false; + } + if (!animal.Awake() && !canInteractWhileSleeping) + { + jobFailReason = CantInteractAnimalAsleepTrans; + return false; + } + if (!animal.CanCasuallyInteractNow(twoWayInteraction: false, canInteractWhileSleeping, canInteractWhileRoaming)) + { + jobFailReason = CantInteractAnimalBusyTrans; + return false; + } + int num = TrainableUtility.MinimumHandlingSkill(animal); + if (!ignoreSkillRequirements && num > pawn.skills.GetSkill(SkillDefOf.Animals).Level) + { + jobFailReason = "AnimalsSkillTooLow".Translate(num); + return false; + } + return true; + } + + protected bool HasFoodToInteractAnimal(Pawn pawn, Pawn tamee) + { + ThingOwner innerContainer = pawn.inventory.innerContainer; + int num = 0; + float num2 = JobDriver_InteractAnimal.RequiredNutritionPerFeed(tamee); + float num3 = 0f; + for (int i = 0; i < innerContainer.Count; i++) + { + Thing thing = innerContainer[i]; + if (!tamee.WillEat(thing, pawn) || (int)thing.def.ingestible.preferability > 5 || thing.def.IsDrug) + { + continue; + } + for (int j = 0; j < thing.stackCount; j++) + { + num3 += thing.GetStatValue(StatDefOf.Nutrition); + if (num3 >= num2) + { + num++; + num3 = 0f; + } + if (num >= 2) + { + return true; + } + } + } + return false; + } + + protected Job TakeFoodForAnimalInteractJob(Pawn pawn, Pawn tamee) + { + ThingDef foodDef; + Thing thing = FoodUtility.BestFoodSourceOnMap(pawn, tamee, desperate: false, out foodDef, FoodPreferability.RawTasty, allowPlant: false, allowDrug: false, allowCorpse: false, allowDispenserFull: false, allowDispenserEmpty: false, allowForbidden: false, allowSociallyImproper: false, allowHarvest: false, forceScanWholeMap: false, ignoreReservations: false, calculateWantedStackCount: false, FoodPreferability.Undefined, JobDriver_InteractAnimal.RequiredNutritionPerFeed(tamee) * 2f * 4f); + if (thing == null) + { + return null; + } + float wantedNutrition = JobDriver_InteractAnimal.RequiredNutritionPerFeed(tamee) * 2f * 4f; + float nutrition = FoodUtility.GetNutrition(tamee, thing, foodDef); + int count = FoodUtility.StackCountForNutrition(wantedNutrition, nutrition); + Job job = JobMaker.MakeJob(JobDefOf.TakeInventory, thing); + job.count = count; + return job; + } +} +``` \ No newline at end of file diff --git a/Documentation/EventSystem_Documentation.md b/Source/Documentation/EventSystem_Documentation.md similarity index 100% rename from Documentation/EventSystem_Documentation.md rename to Source/Documentation/EventSystem_Documentation.md diff --git a/Documentation/layout_preview.html b/Source/Documentation/layout_preview.html similarity index 100% rename from Documentation/layout_preview.html rename to Source/Documentation/layout_preview.html diff --git a/Source/MCP/python-sdk b/Source/MCP/python-sdk deleted file mode 160000 index 959d4e39..00000000 --- a/Source/MCP/python-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 959d4e39ae13e45d3059ec6d6ca82fb231039a91 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_Helmet_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_Helmet_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_Helmet_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_Helmet_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Assault_Troop_PowerArmor_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Body_Suit_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Body_Suit_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Body_Suit_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Body_Suit_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Bodystocking_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Bodystocking_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Bodystocking_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Bodystocking_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Bodystocking_White_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Bodystocking_White_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Bodystocking_White_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Bodystocking_White_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_Helmet_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Heavy_Infantry_PowerArmor_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Knight_Helmet_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Knight_Helmet_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Knight_Helmet_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Knight_Helmet_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Knight_PowerArmor_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Headband.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Headband.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Headband.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Headband.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Maid_Uniform_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Nun_Uniform_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Nun_Uniform_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Nun_Uniform_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Nun_Uniform_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Nun_veil_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Nun_veil_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Nun_veil_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Nun_veil_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Headband_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Nurse_Uniform_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Priest_Hat_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Priest_Hat_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Priest_Hat_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Priest_Hat_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Priest_Uniform_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Priest_Uniform_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Priest_Uniform_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Priest_Uniform_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Qipao_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Qipao_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Qipao_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Qipao_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_north.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_north.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_north.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_north.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Sailor_Dress_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Shield_Base_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Shield_Base_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Shield_Base_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Shield_Base_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Shield_Prismatic_Thin_north.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Skitarii_Uniform_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_Skitarii_veil_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_Skitarii_veil_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_Skitarii_veil_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_Skitarii_veil_south.sai2 diff --git a/美术与文本源文件/Wula/Apparel/WULA_official_uniform_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Apparel/WULA_official_uniform_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Apparel/WULA_official_uniform_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Apparel/WULA_official_uniform_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor.png diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_BluePrint.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_BluePrint.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_BluePrint.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_BluePrint.png diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.png diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.sai2 b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.sai2 rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover.sai2 diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_east.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_east.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_east.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_east.png diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_south.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_south.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_south.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_Mover_south.png diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_east.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_east.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_east.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_east.png diff --git a/美术与文本源文件/Wula/Building/Door/WulaAutodoor_south.png b/Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_south.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Door/WulaAutodoor_south.png rename to Source/美术与文本源文件/Wula/Building/Door/WulaAutodoor_south.png diff --git a/美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png b/Source/美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png rename to Source/美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_Blueprint.png diff --git a/美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png b/Source/美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png rename to Source/美术与文本源文件/Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northeast.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_northwest.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southeast.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_Partial_southwest.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northeast.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.sai2 b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.sai2 rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_northwest.sai2 diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southeast.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/AngledWulaWall_southwest.png diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_east.psd diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Full_west.psd diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_east.psd diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/SubstructureCorner_Tip_west.psd diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/WULA_Fortress_Wall_Smooth.sai2 b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/WULA_Fortress_Wall_Smooth.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/WULA_Fortress_Wall_Smooth.sai2 rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/WULA_Fortress_Wall_Smooth.sai2 diff --git a/美术与文本源文件/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png b/Source/美术与文本源文件/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png similarity index 100% rename from 美术与文本源文件/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png rename to Source/美术与文本源文件/Wula/Building/Linked/WulaWall/WulaWall_Atlas.png diff --git a/美术与文本源文件/Wula/Building/WULA_Chair.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Chair.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Chair.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Chair.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Charging_Station_Synth_south.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Charging_Station_Synth_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Charging_Station_Synth_south.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Charging_Station_Synth_south.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Communicator_Station.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Communicator_Station.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Communicator_Station.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Communicator_Station.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Cube_Productor_BIO.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Cube_Productor_BIO.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Cube_Productor_BIO.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Cube_Productor_BIO.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Cube_Productor_Component.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Cube_Productor_Component.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Cube_Productor_Component.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Cube_Productor_Component.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Heavy_War_Machine_Productor_south.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Heavy_War_Machine_Productor_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Heavy_War_Machine_Productor_south.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Heavy_War_Machine_Productor_south.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Nourishment_Center_Unit.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Nourishment_Center_Unit.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Nourishment_Center_Unit.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Nourishment_Center_Unit.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Synth_Maintainer_south.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Synth_Maintainer_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Synth_Maintainer_south.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Synth_Maintainer_south.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Synth_Server_south.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Synth_Server_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Synth_Server_south.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Synth_Server_south.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_Turret_Component.sai2 b/Source/美术与文本源文件/Wula/Building/WULA_Turret_Component.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Turret_Component.sai2 rename to Source/美术与文本源文件/Wula/Building/WULA_Turret_Component.sai2 diff --git a/美术与文本源文件/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 b/Source/美术与文本源文件/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 rename to Source/美术与文本源文件/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 diff --git a/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_east.png b/Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_east.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_east.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_east.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_north.png b/Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_north.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_north.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_north.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.png b/Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 b/Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 rename to Source/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 diff --git a/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_east.png b/Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_east.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_High_Ponytail_east.png rename to Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_east.png diff --git a/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_north.png b/Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_north.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_High_Ponytail_north.png rename to Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_north.png diff --git a/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.png b/Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.png rename to Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.png diff --git a/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 b/Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 rename to Source/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 diff --git a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_east.png b/Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_east.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_east.png rename to Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_east.png diff --git a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_north.png b/Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_north.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_north.png rename to Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_north.png diff --git a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.png b/Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.png rename to Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.png diff --git a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 b/Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 rename to Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 diff --git a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_west.png b/Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_west.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_west.png rename to Source/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_west.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_east.png b/Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_east.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_east.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_east.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_north.png b/Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_north.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_north.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_north.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.png b/Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 b/Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 rename to Source/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 diff --git a/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_east.png b/Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_east.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_east.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_east.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_north.png b/Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_north.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_north.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_north.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.png b/Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.png similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.png rename to Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.png diff --git a/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.sai2 b/Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.sai2 rename to Source/美术与文本源文件/Wula/Hair/WULA_Scattered_Hair_Long_south.sai2 diff --git a/美术与文本源文件/Wula/Hair/WULA_Sidelocks_south.sai2 b/Source/美术与文本源文件/Wula/Hair/WULA_Sidelocks_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Hair/WULA_Sidelocks_south.sai2 rename to Source/美术与文本源文件/Wula/Hair/WULA_Sidelocks_south.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Charge_Cube_No_Power.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Charge_Cube_No_Power.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Charge_Cube_No_Power.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Charge_Cube_No_Power.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Dark_Matter_Item.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Dark_Matter_Item.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Dark_Matter_Item.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Dark_Matter_Item.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Default_Item.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Default_Item.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Default_Item.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Default_Item.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_MechRepairKit.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_MechRepairKit.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_MechRepairKit.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_MechRepairKit.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Neutronium.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Neutronium.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Neutronium.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Neutronium.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Soul_Wedge.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Soul_Wedge.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Soul_Wedge.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Soul_Wedge.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Syhth_Passion_Trainer.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Syhth_Passion_Trainer.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Syhth_Passion_Trainer.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Syhth_Passion_Trainer.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_Syhth_Trainer.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_Syhth_Trainer.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_Syhth_Trainer.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_Syhth_Trainer.sai2 diff --git a/美术与文本源文件/Wula/Item/WULA_charge_cube.sai2 b/Source/美术与文本源文件/Wula/Item/WULA_charge_cube.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/WULA_charge_cube.sai2 rename to Source/美术与文本源文件/Wula/Item/WULA_charge_cube.sai2 diff --git a/美术与文本源文件/Wula/Item/Wula_Zro.sai2 b/Source/美术与文本源文件/Wula/Item/Wula_Zro.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Item/Wula_Zro.sai2 rename to Source/美术与文本源文件/Wula/Item/Wula_Zro.sai2 diff --git a/美术与文本源文件/Wula/Mote/BeamSecondaryNoise_A.psd b/Source/美术与文本源文件/Wula/Mote/BeamSecondaryNoise_A.psd similarity index 100% rename from 美术与文本源文件/Wula/Mote/BeamSecondaryNoise_A.psd rename to Source/美术与文本源文件/Wula/Mote/BeamSecondaryNoise_A.psd diff --git a/美术与文本源文件/Wula/Mote/BeamSecondaryNoise_B.psd b/Source/美术与文本源文件/Wula/Mote/BeamSecondaryNoise_B.psd similarity index 100% rename from 美术与文本源文件/Wula/Mote/BeamSecondaryNoise_B.psd rename to Source/美术与文本源文件/Wula/Mote/BeamSecondaryNoise_B.psd diff --git a/美术与文本源文件/Wula/Mote/GraserBeam.psd b/Source/美术与文本源文件/Wula/Mote/GraserBeam.psd similarity index 100% rename from 美术与文本源文件/Wula/Mote/GraserBeam.psd rename to Source/美术与文本源文件/Wula/Mote/GraserBeam.psd diff --git a/美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red.png diff --git a/美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red_Double.png diff --git a/美术与文本源文件/Wula/Projectile/WULA_Bullet_Dark_Matter_Beam.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_Dark_Matter_Beam.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Bullet_Dark_Matter_Beam.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_Dark_Matter_Beam.png diff --git a/美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.png diff --git a/美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.sai2 b/Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.sai2 rename to Source/美术与文本源文件/Wula/Projectile/WULA_Bullet_StarDrift_Shotgun_Spear.sai2 diff --git a/美术与文本源文件/Wula/Projectile/WULA_Mortar_Shell.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Mortar_Shell.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Mortar_Shell.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Mortar_Shell.png diff --git a/美术与文本源文件/Wula/Projectile/WULA_Photon_Missile.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Photon_Missile.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Photon_Missile.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Photon_Missile.png diff --git a/美术与文本源文件/Wula/Projectile/WULA_Shrapnel.png b/Source/美术与文本源文件/Wula/Projectile/WULA_Shrapnel.png similarity index 100% rename from 美术与文本源文件/Wula/Projectile/WULA_Shrapnel.png rename to Source/美术与文本源文件/Wula/Projectile/WULA_Shrapnel.png diff --git a/美术与文本源文件/Wula/Storyteller/WULA_Anisia.png b/Source/美术与文本源文件/Wula/Storyteller/WULA_Anisia.png similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/WULA_Anisia.png rename to Source/美术与文本源文件/Wula/Storyteller/WULA_Anisia.png diff --git a/美术与文本源文件/Wula/Storyteller/WULA_Anisia_TINY.png b/Source/美术与文本源文件/Wula/Storyteller/WULA_Anisia_TINY.png similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/WULA_Anisia_TINY.png rename to Source/美术与文本源文件/Wula/Storyteller/WULA_Anisia_TINY.png diff --git a/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女.sai2 b/Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女.sai2 rename to Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女.sai2 diff --git a/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女特殊.sai2 b/Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女特殊.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女特殊.sai2 rename to Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-修女特殊.sai2 diff --git a/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-女仆.sai2 b/Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-女仆.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-女仆.sai2 rename to Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-女仆.sai2 diff --git a/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.png b/Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.png similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.png rename to Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.png diff --git a/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.sai2 b/Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.sai2 rename to Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-皇家制服.sai2 diff --git a/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-默认.sai2 b/Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-默认.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-默认.sai2 rename to Source/美术与文本源文件/Wula/Storyteller/艾妮西娅/艾妮西娅-默认.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_Commander_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_Constructor_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_DM_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.sai2 b/Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WULA_bomb_Cat/WULA_Cat_Thin_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Bodies/Naked_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_east.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_west.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/WULA_Species_Icon.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/WULA_Species_Icon.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/WULA_Species_Icon.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/WULA_Species_Icon.png diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png b/Source/美术与文本源文件/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png similarity index 100% rename from 美术与文本源文件/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png rename to Source/美术与文本源文件/Wula/Things/WulaSpecies/Wounds/WULA_Species_Wound_None.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Bodies/Naked_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Bomb_Mother/Wula_AI_Bomb_Mother_Icon.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.dds diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.dds diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.dds diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/AllegianceOverlays/None_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png b/Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png rename to Source/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Wula_AI_Heavy_Panzer_Icon.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Bodies/Naked_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Heads/Average_Normal_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/Wula_Armour_Icon.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/Wula_Armour_Icon.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/Wula_Armour_Icon.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/Wula_Armour_Icon.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png b/Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_Armour/abandon/Naked_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.sai2 b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.sai2 rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_east.sai2 diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_east.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_north.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Heads/Average_Normal_south.png diff --git a/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png b/Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png similarity index 100% rename from 美术与文本源文件/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png rename to Source/美术与文本源文件/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_CLoak_Ability.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Explosive_Ability.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Feather_Ability.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Flash_Ability.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Lost_Ability.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_MW_Scepter_Of_Perception_Ability.png diff --git a/美术与文本源文件/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png b/Source/美术与文本源文件/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png similarity index 100% rename from 美术与文本源文件/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png rename to Source/美术与文本源文件/Wula/UI/Abilities/WULA_Scepter_Of_Heaven_Ability.png diff --git a/美术与文本源文件/Wula/UI/EventUI/新建画布1.sai2 b/Source/美术与文本源文件/Wula/UI/EventUI/新建画布1.sai2 similarity index 100% rename from 美术与文本源文件/Wula/UI/EventUI/新建画布1.sai2 rename to Source/美术与文本源文件/Wula/UI/EventUI/新建画布1.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Armour_Lance.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Breaker_Bar.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_ChainSword.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Charge_Mace.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Constructor_Hammer.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Glaive.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Glaive.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Glaive.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Glaive.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Lance.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Lance.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Lance.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Lance.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Lance.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Lance.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Lance.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Lance.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Mace.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Mace.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Mace.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Mace.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_CLoak.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Explosive.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Feather.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Flash.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Heaven.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Lost.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_MW_Scepter_Of_Perception.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_AutoCannon.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Auto_GL.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR_Cat.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR_Cat.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR_Cat.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Base_AR_Cat.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_DM_AR.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_DM_AR.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_DM_AR.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_DM_AR.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_DM_Cannon.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_DM_Cannon.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_DM_Cannon.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_DM_Cannon.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Fractal_RF.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Fractal_RF.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Fractal_RF.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Fractal_RF.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Handle_Cannon.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_Sphene_MG.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_SG.png b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_SG.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_SG.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_SG.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_Shotgun.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_Shotgun.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_Shotgun.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_RW_StarDrift_Shotgun.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_SP_Spell_Medium.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_SP_Spell_Medium.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_SP_Spell_Medium.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_SP_Spell_Medium.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.png b/Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Autocannon.sai2 diff --git a/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.png b/Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.png similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.png rename to Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.png diff --git a/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.sai2 b/Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.sai2 rename to Source/美术与文本源文件/Wula/Weapon/WULA_WM_Panzer_Turret.sai2 diff --git a/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png b/Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png similarity index 100% rename from 美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png rename to Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.png diff --git a/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.sai2 b/Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.sai2 similarity index 100% rename from 美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.sai2 rename to Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_Broken_Personality_Faction.sai2 diff --git a/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png b/Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png similarity index 100% rename from 美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png rename to Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.png diff --git a/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.sai2 b/Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.sai2 similarity index 100% rename from 美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.sai2 rename to Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Faction.sai2 diff --git a/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Spiritualist_Faction.sai2 b/Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Spiritualist_Faction.sai2 similarity index 100% rename from 美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Spiritualist_Faction.sai2 rename to Source/美术与文本源文件/Wula/World/WorldObjects/Expanding/Wula_FE_Spiritualist_Faction.sai2 diff --git a/美术与文本源文件/thumbnail.png b/Source/美术与文本源文件/thumbnail.png similarity index 100% rename from 美术与文本源文件/thumbnail.png rename to Source/美术与文本源文件/thumbnail.png diff --git a/美术与文本源文件/thumbnail.sai2 b/Source/美术与文本源文件/thumbnail.sai2 similarity index 100% rename from 美术与文本源文件/thumbnail.sai2 rename to Source/美术与文本源文件/thumbnail.sai2 diff --git a/美术与文本源文件/《堕落乌拉帝国》.txt b/Source/美术与文本源文件/《堕落乌拉帝国》.txt similarity index 100% rename from 美术与文本源文件/《堕落乌拉帝国》.txt rename to Source/美术与文本源文件/《堕落乌拉帝国》.txt diff --git a/美术与文本源文件/修女乌拉.sai2 b/Source/美术与文本源文件/修女乌拉.sai2 similarity index 100% rename from 美术与文本源文件/修女乌拉.sai2 rename to Source/美术与文本源文件/修女乌拉.sai2 diff --git a/美术与文本源文件/宣传图2.png b/Source/美术与文本源文件/宣传图2.png similarity index 100% rename from 美术与文本源文件/宣传图2.png rename to Source/美术与文本源文件/宣传图2.png diff --git a/美术与文本源文件/宣传图2.sai2 b/Source/美术与文本源文件/宣传图2.sai2 similarity index 100% rename from 美术与文本源文件/宣传图2.sai2 rename to Source/美术与文本源文件/宣传图2.sai2 diff --git a/美术与文本源文件/宣传图3.png b/Source/美术与文本源文件/宣传图3.png similarity index 100% rename from 美术与文本源文件/宣传图3.png rename to Source/美术与文本源文件/宣传图3.png diff --git a/美术与文本源文件/宣传图3.sai2 b/Source/美术与文本源文件/宣传图3.sai2 similarity index 100% rename from 美术与文本源文件/宣传图3.sai2 rename to Source/美术与文本源文件/宣传图3.sai2 diff --git a/美术与文本源文件/宣传图4.sai2 b/Source/美术与文本源文件/宣传图4.sai2 similarity index 100% rename from 美术与文本源文件/宣传图4.sai2 rename to Source/美术与文本源文件/宣传图4.sai2 diff --git a/美术与文本源文件/宣传图5.png b/Source/美术与文本源文件/宣传图5.png similarity index 100% rename from 美术与文本源文件/宣传图5.png rename to Source/美术与文本源文件/宣传图5.png diff --git a/美术与文本源文件/故障的arc代码之扇形攻击.txt b/Source/美术与文本源文件/故障的arc代码之扇形攻击.txt similarity index 100% rename from 美术与文本源文件/故障的arc代码之扇形攻击.txt rename to Source/美术与文本源文件/故障的arc代码之扇形攻击.txt diff --git a/美术与文本源文件/新建文本文档.txt b/Source/美术与文本源文件/新建文本文档.txt similarity index 100% rename from 美术与文本源文件/新建文本文档.txt rename to Source/美术与文本源文件/新建文本文档.txt diff --git a/美术与文本源文件/眉栏.sai2 b/Source/美术与文本源文件/眉栏.sai2 similarity index 100% rename from 美术与文本源文件/眉栏.sai2 rename to Source/美术与文本源文件/眉栏.sai2 diff --git a/美术与文本源文件/群星文本/dip_messages_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/dip_messages_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/dip_messages_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/dip_messages_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_awake_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_awake_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_awake_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_awake_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_buildings_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_buildings_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_buildings_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_buildings_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_dip_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_dip_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_dip_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_dip_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_events_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_events_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_events_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_events_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_jobs_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_jobs_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_jobs_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_jobs_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_main_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_main_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_main_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_main_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_planet_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_planet_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_planet_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_planet_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/fallen_empire_test_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/fallen_empire_test_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/fallen_empire_test_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/fallen_empire_test_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/name_lists/name_list_WULA_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/name_lists/name_list_WULA_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/name_lists/name_list_WULA_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/name_lists/name_list_WULA_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_ascension_perks_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_ascension_perks_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_ascension_perks_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_ascension_perks_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_civics_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_civics_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_civics_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_civics_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_concept_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_concept_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_concept_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_concept_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_courier_events_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_courier_events_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_courier_events_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_courier_events_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_machine_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_machine_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_machine_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_machine_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_materialist_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_materialist_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_materialist_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_materialist_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_preftl_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_preftl_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_preftl_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_preftl_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_rogue_trader_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_rogue_trader_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_rogue_trader_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_rogue_trader_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_spiritualist_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_spiritualist_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_spiritualist_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_spiritualist_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_xenophile_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_xenophile_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_xenophile_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_xenophile_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empire_xenophobe_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empire_xenophobe_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empire_xenophobe_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empire_xenophobe_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fallen_empires_mid_events_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fallen_empires_mid_events_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fallen_empires_mid_events_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fallen_empires_mid_events_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_fleet_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_fleet_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_fleet_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_fleet_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_megastructure_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_megastructure_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_megastructure_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_megastructure_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_modifiers_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_modifiers_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_modifiers_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_modifiers_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_narrative_events_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_narrative_events_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_narrative_events_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_narrative_events_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_observation_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_observation_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_observation_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_observation_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_operation_event_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_operation_event_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_operation_event_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_operation_event_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_policy_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_policy_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_policy_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_policy_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_species_rights_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_species_rights_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_species_rights_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_species_rights_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_tech_componment_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_tech_componment_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_tech_componment_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_tech_componment_l_simp_chinese.yml diff --git a/美术与文本源文件/群星文本/wula_traits_l_simp_chinese.yml b/Source/美术与文本源文件/群星文本/wula_traits_l_simp_chinese.yml similarity index 100% rename from 美术与文本源文件/群星文本/wula_traits_l_simp_chinese.yml rename to Source/美术与文本源文件/群星文本/wula_traits_l_simp_chinese.yml diff --git a/WulaFallenEmpireTest.rar b/WulaFallenEmpireTest.rar deleted file mode 100644 index 46163272dbc6f48d631bb46cf747ba04b1beac09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1369803 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 z
    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
    3T{pDbH7& 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 z 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

    j+tZ`3LjJ%IGtQ*$Q6@LgG67tEllA;wm> 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
  • $?{c_= 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%0A~tp6_RZF2%q0TA*w;Yu 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�AM$0@8#VsNYw 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⋘(ivla%qM- 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
    CGW#5cmg*TwRFv??mnV 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

    j7J(x~%Iwy}kKm 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%0D{<2RgG2T( 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 W5*vWL#r*!&+y7<>!2#MjWaPgZ=

  • *G_o83v98MZOC) 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 z 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
    OY>YdC~7J|$H3=ARmGwpwoqo<5ol&; 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