mirror of
https://gitgud.io/dastardlii/rjw-rbse.git
synced 2024-08-14 23:57:40 +00:00
85 lines
3.4 KiB
C#
85 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Reflection;
|
|
using System.Linq;
|
|
using Harmony;
|
|
using RimWorld;
|
|
using Verse;
|
|
|
|
namespace RJW_RBSE
|
|
{
|
|
[StaticConstructorOnStartup]
|
|
internal static class Startup
|
|
{
|
|
//Quick check to see if an another mod is loaded.
|
|
private static bool IsLoaded(string mod)
|
|
{
|
|
return LoadedModManager.RunningModsListForReading.Any(x => x.Name == mod);
|
|
}
|
|
|
|
private static void Fix_recipes()
|
|
{
|
|
//Log.Message("[RJW-RBSE] Startup::fix_recipes");
|
|
|
|
if (!IsLoaded("RimJobWorld"))
|
|
{
|
|
Log.Warning("[RJW-RBSE] RJW is not loaded!");
|
|
return;
|
|
}
|
|
|
|
if (!IsLoaded("Rah's Bionics and Surgery Expansion"))
|
|
{
|
|
Log.Warning("[RJW-RBSE] RBSE is not loaded!");
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
//Vanilla bench
|
|
var fab_ben = DefDatabase<ThingDef>.GetNamed("FabricationBench");
|
|
|
|
//EPOE bench
|
|
var bio_ben = DefDatabase<ThingDef>.GetNamed("TableBionics", false);
|
|
|
|
//RBSE benches
|
|
var rbse_bio = DefDatabase<ThingDef>.GetNamed("BionicWorkbench", false);
|
|
var rbse_adv = DefDatabase<ThingDef>.GetNamed("AdvancedMedicalStation", false);
|
|
|
|
// Remove existing Bionic recipes
|
|
(bio_ben ?? fab_ben).AllRecipes.Remove(DefDatabase<RecipeDef>.GetNamed("MakeBionicAnus"));
|
|
(bio_ben ?? fab_ben).AllRecipes.Remove(DefDatabase<RecipeDef>.GetNamed("MakeBionicBreasts"));
|
|
(bio_ben ?? fab_ben).AllRecipes.Remove(DefDatabase<RecipeDef>.GetNamed("MakeBionicPenis"));
|
|
(bio_ben ?? fab_ben).AllRecipes.Remove(DefDatabase<RecipeDef>.GetNamed("MakeBionicVagina"));
|
|
|
|
// Add recipes to RBSE bionics bench
|
|
rbse_bio.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeBionicAnus"));
|
|
rbse_bio.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeBionicBreasts"));
|
|
rbse_bio.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeBionicPenis"));
|
|
rbse_bio.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeBionicVagina"));
|
|
|
|
// Add recipes to RBSE Advanced Medical bench
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeAdvancedBionicJaw"));
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeSyntheticUterus"));
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeSyntheticTesticles"));
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeAdvancedBionicPenis"));
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeAdvancedBionicVagina"));
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeAdvancedBionicBreasts"));
|
|
rbse_adv.AllRecipes.Add(DefDatabase<RecipeDef>.GetNamed("MakeAdvancedBionicAnus"));
|
|
}
|
|
catch
|
|
{
|
|
Log.Warning("[RJW-RBSE] Unable to fix RJW/RBSE recipes.");
|
|
}
|
|
|
|
}
|
|
|
|
static Startup()
|
|
{
|
|
//Log.Message("[RJW-RBSE] Startup::Startup() called");
|
|
|
|
Fix_recipes();
|
|
var harmony = HarmonyInstance.Create("rjw-rbse");
|
|
harmony.PatchAll(Assembly.GetExecutingAssembly());
|
|
}
|
|
}
|
|
}
|