Skip to content

Commit

Permalink
v2.1.1 adds support for Carousel mod
Browse files Browse the repository at this point in the history
  • Loading branch information
pardeike committed Dec 25, 2020
1 parent 7ae4fc6 commit 758bbdf
Show file tree
Hide file tree
Showing 10 changed files with 115 additions and 61 deletions.
2 changes: 1 addition & 1 deletion About/Manifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Manifest>
<identifier>net.pardeike.rimworld.mod.cameraplus</identifier>
<version>2.0.4.0</version>
<version>2.1.1.0</version>
<targetVersions>
<li>1.0.0</li>
<li>1.1.0</li>
Expand Down
2 changes: 1 addition & 1 deletion About/ModSync.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<ModSyncNinjaData>
<ID>d47b5c8c-3f08-4ab6-8d0a-bc67e509d15c</ID>
<ModName>Camera+</ModName>
<Version>2.0.4.0</Version>
<Version>2.1.1.0</Version>
<SaveBreaking>False</SaveBreaking>
<Host name="Github">
<Owner>pardeike</Owner>
Expand Down
Binary file added Current/Assemblies/0Harmony.dll
Binary file not shown.
Binary file modified Current/Assemblies/CameraPlus.dll
Binary file not shown.
48 changes: 6 additions & 42 deletions Source/CameraPlus.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -47,48 +47,12 @@
<Compile Include="Tools.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="0Harmony, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Lib.Harmony.2.0.2\lib\net472\0Harmony.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Assembly-CSharp">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Assembly-CSharp-firstpass">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Runtime.InteropServices.RuntimeInformation" />
<Reference Include="System.XML" />
<Reference Include="UnityEngine">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.ImageConversionModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<PackageReference Include="Krafs.Rimworld.Ref">
<Version>1.2.2753</Version>
</PackageReference>
<PackageReference Include="Lib.Harmony">
<Version>2.0.2</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
Expand Down
95 changes: 94 additions & 1 deletion Source/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ public class CameraPlusMain : Mod
public static CameraPlusSettings Settings;
public static float orthographicSize = -1f;

//public static float nMinusCameraScale;
//public static float viewActivityLevel;
//public static float viewDollyLevel;
//public static float previousTickRateMultiplier;

// for other mods: set temporarily to true to skip any hiding
public static bool skipCustomRendering = false;

Expand Down Expand Up @@ -115,6 +120,9 @@ static void Postfix(ref Vector2 __result)
{
if (CameraPlusMain.orthographicSize != -1f)
__result *= Tools.GetScreenEdgeDollyFactor(CameraPlusMain.orthographicSize);

//if (CameraPlusMain.Settings.dynamicSpeedControl)
// CameraPlusMain.viewDollyLevel = __result.magnitude;
}
}

Expand Down Expand Up @@ -436,4 +444,89 @@ static IEnumerable<CodeInstruction> Transpiler(ILGenerator generator, IEnumerabl
}
}
}
}

/*[HarmonyPatch(typeof(TickManager))]
[HarmonyPatch(nameof(TickManager.TickRateMultiplier), MethodType.Getter)]
static class TickManager_TickRateMultiplier_Patch
{
static void Postfix(ref float __result, TickManager __instance)
{
if (CameraPlusMain.Settings.dynamicSpeedControl == false)
return;
var gameSpeed = __instance.CurTimeSpeed;
if (gameSpeed == TimeSpeed.Paused)
return;
var rootSize = Refs.rootSize(Find.CameraDriver);
var deltaTime = Time.deltaTime;
if (Mathf.Abs(rootSize - CameraPlusMain.nMinusCameraScale) > 0.001f)
{
CameraPlusMain.nMinusCameraScale = rootSize;
CameraPlusMain.viewActivityLevel = 2 * rootSize;
deltaTime *= 10;
}
if (CameraPlusMain.viewActivityLevel + CameraPlusMain.viewDollyLevel > 5f)
{
switch (gameSpeed)
{
case TimeSpeed.Normal:
__result = 1.0f;
break;
case TimeSpeed.Fast:
__result = Mathf.Max(CameraPlusMain.previousTickRateMultiplier - 0.5f * deltaTime, CameraPlusMain.Settings.speedControlLimits[0]);
break;
case TimeSpeed.Superfast:
__result = Mathf.Max(CameraPlusMain.previousTickRateMultiplier - 1.25f * deltaTime, CameraPlusMain.Settings.speedControlLimits[1]);
break;
case TimeSpeed.Ultrafast:
__result = Mathf.Max(CameraPlusMain.previousTickRateMultiplier - 4.5f * deltaTime, CameraPlusMain.Settings.speedControlLimits[2]);
break;
}
}
else
__result = Mathf.Min(CameraPlusMain.previousTickRateMultiplier + CameraPlusMain.Settings.speedGain * deltaTime, __result);
CameraPlusMain.previousTickRateMultiplier = __result;
}
}*/

/*[HarmonyPatch(typeof(CameraDriver))]
[HarmonyPatch(nameof(CameraDriver.CameraDriverOnGUI))]
static class CameraDriver_CameraDriverOnGUI_Patch
{
static void Postfix(CameraDriver __instance)
{
if (CameraPlusMain.Settings.dynamicSpeedControl == false)
return;
if (Find.TickManager.Paused || Find.TickManager.NotPlaying)
return;
CameraPlusMain.viewActivityLevel = 0f;
if (KeyBindingDefOf.MapDolly_Left.IsDown || KeyBindingDefOf.MapDolly_Up.IsDown || KeyBindingDefOf.MapDolly_Right.IsDown || KeyBindingDefOf.MapDolly_Down.IsDown)
{
switch (__instance.CurrentZoom)
{
case CameraZoomRange.Furthest:
CameraPlusMain.viewActivityLevel = 150f;
break;
case CameraZoomRange.Far:
CameraPlusMain.viewActivityLevel = 80f;
break;
case CameraZoomRange.Middle:
CameraPlusMain.viewActivityLevel = 40f;
break;
case CameraZoomRange.Close:
CameraPlusMain.viewActivityLevel = 5f;
break;
case CameraZoomRange.Closest:
CameraPlusMain.viewActivityLevel = 1f;
break;
}
}
}
}*/
}
4 changes: 2 additions & 2 deletions Source/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@

[assembly: Guid("b0d46bb5-08ff-4e04-9efd-3e32e38a9cc2")]

[assembly: AssemblyVersion("2.0.4.0")]
[assembly: AssemblyFileVersion("2.0.4.0")]
[assembly: AssemblyVersion("2.1.1.0")]
[assembly: AssemblyFileVersion("2.1.1.0")]
8 changes: 7 additions & 1 deletion Source/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ public class CameraPlusSettings : ModSettings
public float zoomedOutPercent = 65;
public float zoomedInPercent = 1;
public int exponentiality = 1;
//public bool dynamicSpeedControl = true;
//public float speedGain = 0.5f;
//public float[] speedControlLimits = new[] { 1.5f, 2f, 3f };
public float zoomedOutDollyPercent = 1;
public float zoomedInDollyPercent = 1;
public float zoomedOutScreenEdgeDollyFactor = 0.5f;
Expand Down Expand Up @@ -70,6 +73,7 @@ public override void ExposeData()
Scribe_Values.Look(ref zoomedOutPercent, "zoomedOutPercent", 65);
Scribe_Values.Look(ref zoomedInPercent, "zoomedInPercent", 1);
Scribe_Values.Look(ref exponentiality, "exponentiality", 1);
//Scribe_Values.Look(ref dynamicSpeedControl, "dynamicSpeedControl", true);
Scribe_Values.Look(ref zoomedOutDollyPercent, "zoomedOutDollyPercent", 1);
Scribe_Values.Look(ref zoomedInDollyPercent, "zoomedInDollyPercent", 1);
Scribe_Values.Look(ref zoomedOutScreenEdgeDollyFactor, "zoomedOutScreenEdgeDollyFactor", 0.5f);
Expand Down Expand Up @@ -208,6 +212,7 @@ public void DoWindowContents(Rect inRect)
_ = list.Label("DollyPercentLabel".Translate());
list.Slider(ref zoomedInDollyPercent, 0f, 4f, () => "Near".Translate() + ": " + Math.Round(zoomedInDollyPercent * 100, 1) + "%");
list.Slider(ref zoomedOutDollyPercent, 0f, 4f, () => "Far".Translate() + ": " + Math.Round(zoomedOutDollyPercent * 100, 1) + " % ");
//list.CheckboxLabeled("Smooth Dolly", ref dynamicSpeedControl);

list.Gap(12f);

Expand Down Expand Up @@ -241,6 +246,7 @@ public void DoWindowContents(Rect inRect)
zoomedOutPercent = 65;
zoomedInPercent = 1;
exponentiality = 1;
//dynamicSpeedControl = true;
zoomedOutDollyPercent = 1;
zoomedInDollyPercent = 1;
zoomedOutScreenEdgeDollyFactor = 0.5f;
Expand All @@ -266,4 +272,4 @@ public void DoWindowContents(Rect inRect)
list.End();
}
}
}
}
13 changes: 4 additions & 9 deletions Source/Tools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -181,25 +181,20 @@ public static float MouseDistanceSquared(Vector3 pos, bool mapCoordinates)
}

mouse = UI.MapToUIPosition(mouse);
var len = CurrentCellLength();
var len = UI.CurUICellSize();
mouse.y += len / 2;
var dx2 = (mouse.x - pos.x);
var dy = (mouse.y - pos.y);
var delta = dx2 * dx2 + dy * dy;
return delta / len / len;
}

public static float CurrentCellLength()
{
return Vector3.one.MapToUIPosition().x - Vector3.zero.MapToUIPosition().x;
}

public static bool ShouldShowBody(Pawn pawn)
{
if (CameraPlusMain.Settings.hideNamesWhenZoomedOut == false || MouseDistanceSquared(pawn.DrawPos, true) <= 2.25f)
return true;

return (CurrentCellLength() > CameraPlusMain.Settings.dotSize);
return (UI.CurUICellSize() > CameraPlusMain.Settings.dotSize);
}

public static void ShouldShowLabel(Vector3 location, bool isPawn, out bool showLabel, out bool showDot)
Expand All @@ -213,7 +208,7 @@ public static void ShouldShowLabel(Vector3 location, bool isPawn, out bool showL
if (MouseDistanceSquared(location, isPawn) <= 2.25f && CameraPlusMain.Settings.mouseOverShowsLabels)
return;

var len = CurrentCellLength();
var len = UI.CurUICellSize();

if (isPawn && len <= CameraPlusMain.Settings.dotSize)
{
Expand Down Expand Up @@ -479,4 +474,4 @@ public static void HandleHotkeys()
}
}
}
}
}
4 changes: 0 additions & 4 deletions Source/packages.config

This file was deleted.

0 comments on commit 758bbdf

Please sign in to comment.