mirror of
https://github.com/Xevion/RimWorld_ResearchWhatever.git
synced 2025-12-06 01:16:11 -06:00
1.0.4
This commit is contained in:
Binary file not shown.
@@ -5,4 +5,8 @@
|
|||||||
<CommandResearchWhateverToggleDescInactive>Inactive - colonists will not choose something to research on their own.</CommandResearchWhateverToggleDescInactive>
|
<CommandResearchWhateverToggleDescInactive>Inactive - colonists will not choose something to research on their own.</CommandResearchWhateverToggleDescInactive>
|
||||||
<ResearchWhateverNothingLeftToResearch>{0} has nothing left to research</ResearchWhateverNothingLeftToResearch>
|
<ResearchWhateverNothingLeftToResearch>{0} has nothing left to research</ResearchWhateverNothingLeftToResearch>
|
||||||
<ResearchWhateverNewResearch>{0} has started a new research: {1}</ResearchWhateverNewResearch>
|
<ResearchWhateverNewResearch>{0} has started a new research: {1}</ResearchWhateverNewResearch>
|
||||||
|
<CommandResearchWhateverToggleMute>Mute</CommandResearchWhateverToggleMute>
|
||||||
|
<CommandResearchWhateverToggleDefault>Default</CommandResearchWhateverToggleDefault>
|
||||||
|
<CommandResearchWhateverToggleLetter>Letter</CommandResearchWhateverToggleLetter>
|
||||||
|
<CommandResearchWhateverToggleNotice>Notice</CommandResearchWhateverToggleNotice>
|
||||||
</LanguageData>
|
</LanguageData>
|
||||||
|
|||||||
37
Source/ResearchWhatever13/Patches/ResearchManagerPatch.cs
Normal file
37
Source/ResearchWhatever13/Patches/ResearchManagerPatch.cs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using HarmonyLib;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using Verse.Sound;
|
||||||
|
|
||||||
|
namespace ResearchWhatever.Patches
|
||||||
|
{
|
||||||
|
[HarmonyPatch(typeof(ResearchManager), "FinishProject")]
|
||||||
|
public static class ResearchManager_FinishProject_ResearchWhateverPatch
|
||||||
|
{
|
||||||
|
public static void Prefix(ResearchManager __instance, ref bool doCompletionDialog)
|
||||||
|
{
|
||||||
|
if (doCompletionDialog)
|
||||||
|
{
|
||||||
|
var comp = Current.Game.GetComponent<ResearchWhateverGameComp>();
|
||||||
|
if (comp.NotifyMode == ResearchWhateverNotifyMode.rwnDefault)
|
||||||
|
return;
|
||||||
|
|
||||||
|
doCompletionDialog = false;
|
||||||
|
|
||||||
|
switch (comp.NotifyMode)
|
||||||
|
{
|
||||||
|
case ResearchWhateverNotifyMode.rwnLetter:
|
||||||
|
Find.LetterStack.ReceiveLetter("ResearchFinished".Translate(__instance.currentProj.LabelCap), __instance.currentProj.description, LetterDefOf.PositiveEvent, null, null, null, null, null);
|
||||||
|
break;
|
||||||
|
case ResearchWhateverNotifyMode.rwnNotice:
|
||||||
|
Messages.Message("ResearchFinished".Translate(__instance.currentProj.LabelCap).CapitalizeFirst(), MessageTypeDefOf.SilentInput);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ namespace ResearchWhatever
|
|||||||
{
|
{
|
||||||
//[HarmonyPatch(typeof(StaticConstructorOnStartupUtility), "CallAll")]
|
//[HarmonyPatch(typeof(StaticConstructorOnStartupUtility), "CallAll")]
|
||||||
[HarmonyPatch]
|
[HarmonyPatch]
|
||||||
static class StaticConstructorOnStartupUtility_CallAll_ResearchWhateverPatch
|
public static class StaticConstructorOnStartupUtility_CallAll_ResearchWhateverPatch
|
||||||
{
|
{
|
||||||
internal static MethodBase TargetMethod()
|
internal static MethodBase TargetMethod()
|
||||||
{
|
{
|
||||||
@@ -29,7 +29,7 @@ namespace ResearchWhatever
|
|||||||
return LCallAll;
|
return LCallAll;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
static void Postfix()
|
public static void Postfix()
|
||||||
{
|
{
|
||||||
List<ThingDef> list = new List<ThingDef>(
|
List<ThingDef> list = new List<ThingDef>(
|
||||||
from x in DefDatabase<ThingDef>.AllDefsListForReading
|
from x in DefDatabase<ThingDef>.AllDefsListForReading
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ using Verse.Sound;
|
|||||||
namespace ResearchWhatever.Patches
|
namespace ResearchWhatever.Patches
|
||||||
{
|
{
|
||||||
[HarmonyPatch(typeof(WorkGiver_Researcher), "ShouldSkip")]
|
[HarmonyPatch(typeof(WorkGiver_Researcher), "ShouldSkip")]
|
||||||
static class WorkGiver_Researcher_ShouldSkip_ResearchWhateverPatch
|
public static class WorkGiver_Researcher_ShouldSkip_ResearchWhateverPatch
|
||||||
{
|
{
|
||||||
static bool Prefix(ref bool __result)
|
public static bool Prefix(ref bool __result)
|
||||||
{
|
{
|
||||||
__result = false;
|
__result = false;
|
||||||
return false;
|
return false;
|
||||||
@@ -18,9 +18,9 @@ namespace ResearchWhatever.Patches
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(WorkGiver_Researcher), "PotentialWorkThingRequest", MethodType.Getter)]
|
[HarmonyPatch(typeof(WorkGiver_Researcher), "PotentialWorkThingRequest", MethodType.Getter)]
|
||||||
static class WorkGiver_PotentialWorkThingRequest_ResearchWhateverPatch
|
public static class WorkGiver_PotentialWorkThingRequest_ResearchWhateverPatch
|
||||||
{
|
{
|
||||||
static bool Prefix(ref ThingRequest __result)
|
public static bool Prefix(ref ThingRequest __result)
|
||||||
{
|
{
|
||||||
__result = ThingRequest.ForGroup(ThingRequestGroup.ResearchBench);
|
__result = ThingRequest.ForGroup(ThingRequestGroup.ResearchBench);
|
||||||
return false;
|
return false;
|
||||||
@@ -28,7 +28,7 @@ namespace ResearchWhatever.Patches
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(WorkGiver_Researcher), "HasJobOnThing")]
|
[HarmonyPatch(typeof(WorkGiver_Researcher), "HasJobOnThing")]
|
||||||
static class WorkGiver_Researcher_HasJobOnThing_ResearchWhateverPatch
|
public static class WorkGiver_Researcher_HasJobOnThing_ResearchWhateverPatch
|
||||||
{
|
{
|
||||||
private static bool hasFacilities(this Building_ResearchBench bench, List<ThingDef> requiredFacilities)
|
private static bool hasFacilities(this Building_ResearchBench bench, List<ThingDef> requiredFacilities)
|
||||||
{
|
{
|
||||||
@@ -43,7 +43,7 @@ namespace ResearchWhatever.Patches
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Prefix(Pawn pawn, Thing t, bool forced)
|
public static void Prefix(Pawn pawn, Thing t, bool forced)
|
||||||
{
|
{
|
||||||
ResearchProjectDef currentProj = Find.ResearchManager.currentProj;
|
ResearchProjectDef currentProj = Find.ResearchManager.currentProj;
|
||||||
if (currentProj != null) return;
|
if (currentProj != null) return;
|
||||||
|
|||||||
@@ -68,6 +68,7 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="ResearchWhateverComp.cs" />
|
<Compile Include="ResearchWhateverComp.cs" />
|
||||||
<Compile Include="ResearchWhateverExtansion.cs" />
|
<Compile Include="ResearchWhateverExtansion.cs" />
|
||||||
|
<Compile Include="ResearchWhateverGameComp.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Verse;
|
using Verse;
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace ResearchWhatever
|
namespace ResearchWhatever
|
||||||
{
|
{
|
||||||
@@ -29,7 +30,33 @@ namespace ResearchWhatever
|
|||||||
command_Toggle.isActive = (() => active);
|
command_Toggle.isActive = (() => active);
|
||||||
command_Toggle.toggleAction = delegate ()
|
command_Toggle.toggleAction = delegate ()
|
||||||
{
|
{
|
||||||
Active = !active;
|
if (Event.current.button == 0)
|
||||||
|
Active = !Active;
|
||||||
|
else if (Event.current.button == 1)
|
||||||
|
{
|
||||||
|
var comp = Current.Game.GetComponent<ResearchWhateverGameComp>();
|
||||||
|
//var lable = Mute ? "CommandResearchWhateverToggleMute".Translate().CapitalizeFirst() : "CommandResearchWhateverToggleUnmute".Translate().CapitalizeFirst();
|
||||||
|
List<FloatMenuOption> list = new List<FloatMenuOption>();
|
||||||
|
list.Add(new FloatMenuOption("CommandResearchWhateverToggleDefault".Translate().CapitalizeFirst(), delegate ()
|
||||||
|
{
|
||||||
|
comp.NotifyMode = ResearchWhateverNotifyMode.rwnDefault;
|
||||||
|
}));
|
||||||
|
list.Add(new FloatMenuOption("CommandResearchWhateverToggleLetter".Translate().CapitalizeFirst(), delegate ()
|
||||||
|
{
|
||||||
|
comp.NotifyMode = ResearchWhateverNotifyMode.rwnLetter;
|
||||||
|
}));
|
||||||
|
list.Add(new FloatMenuOption("CommandResearchWhateverToggleNotice".Translate().CapitalizeFirst(), delegate ()
|
||||||
|
{
|
||||||
|
comp.NotifyMode = ResearchWhateverNotifyMode.rwnNotice;
|
||||||
|
}));
|
||||||
|
list.Add(new FloatMenuOption("CommandResearchWhateverToggleMute".Translate().CapitalizeFirst(), delegate ()
|
||||||
|
{
|
||||||
|
comp.NotifyMode = ResearchWhateverNotifyMode.rwnMute;
|
||||||
|
}));
|
||||||
|
FloatMenu floatMenu = new FloatMenu(list);
|
||||||
|
floatMenu.vanishIfMouseDistant = true;
|
||||||
|
Find.WindowStack.Add(floatMenu);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
if (Active)
|
if (Active)
|
||||||
{
|
{
|
||||||
@@ -45,5 +72,5 @@ namespace ResearchWhatever
|
|||||||
|
|
||||||
private bool active = true;
|
private bool active = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
24
Source/ResearchWhatever13/ResearchWhateverGameComp.cs
Normal file
24
Source/ResearchWhatever13/ResearchWhateverGameComp.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Verse;
|
||||||
|
using RimWorld;
|
||||||
|
|
||||||
|
namespace ResearchWhatever
|
||||||
|
{
|
||||||
|
public enum ResearchWhateverNotifyMode { rwnDefault, rwnLetter, rwnNotice, rwnMute }
|
||||||
|
public class ResearchWhateverGameComp : GameComponent
|
||||||
|
{
|
||||||
|
public ResearchWhateverGameComp()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public ResearchWhateverGameComp(Game game)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void ExposeData()
|
||||||
|
{
|
||||||
|
Scribe_Values.Look(ref notifyMode, "NotifyMode");
|
||||||
|
}
|
||||||
|
private ResearchWhateverNotifyMode notifyMode = ResearchWhateverNotifyMode.rwnDefault;
|
||||||
|
public ResearchWhateverNotifyMode NotifyMode { get { return notifyMode; } set { notifyMode = value; } }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
1.0.3
|
1.0.4
|
||||||
|
- now you can r-click on the toggle to mute completion notifications;
|
||||||
|
|
||||||
|
1.0.3
|
||||||
- added an extension to make it possible to ignore some research or prioritize last;
|
- added an extension to make it possible to ignore some research or prioritize last;
|
||||||
- made so repeatable research from firefoxpdm.ResearchableStatUpgrades us always bottom priority;
|
- made so repeatable research from firefoxpdm.ResearchableStatUpgrades is always bottom priority;
|
||||||
|
|
||||||
1.0.2
|
1.0.2
|
||||||
- option gets disabled if building is not of player faction;
|
- option gets disabled if building is not of player faction;
|
||||||
|
|||||||
Reference in New Issue
Block a user