Decompiled source of PlanetsideShaderFix v1.0.0

PlanetsideShaderFix.dll

Decompiled 6 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Planetside;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace PlanetsideShaderFix
{
	public class C
	{
		public static readonly bool DEBUG_BUILD = false;

		public const string MOD_NAME = "Planetside Shader Fix";

		public const string MOD_INT_NAME = "PlanetsideShaderFix";

		public const string MOD_VERSION = "1.0.0";

		public const string MOD_GUID = "pretzel.etg.psogshaderfix";

		public const string MOD_PREFIX = "pssf";

		public static readonly Color MOD_COLOR = Color.white;
	}
	public static class LinuxShaderFix
	{
		private class PortalFixer : MonoBehaviour
		{
			[HarmonyPatch(typeof(TrespassPortalController), "Start")]
			private class FixTrespassPortalPatch
			{
				private static void Postfix(TrespassPortalController __instance)
				{
					((Component)__instance).gameObject.AddComponent<PortalFixer>();
				}
			}

			[HarmonyPatch(typeof(TrespassReturnPortalController), "Start")]
			private class FixTrespassReturnPortalPatch
			{
				private static void Postfix(TrespassPortalController __instance)
				{
					((Component)__instance).gameObject.AddComponent<PortalFixer>();
				}
			}

			private void Start()
			{
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				Material material = ((Renderer)((Component)this).gameObject.GetComponent<MeshRenderer>()).material;
				material.shader = ShaderCache.Acquire("Brave/LitTk2dCustomFalloffTiltedCutoutEmissive");
				material.DisableKeyword("BRIGHTNESS_CLAMP_ON");
				material.EnableKeyword("BRIGHTNESS_CLAMP_OFF");
				material.SetFloat("_EmissivePower", 3000f);
				material.SetFloat("_EmissiveColorPower", 1.55f);
				material.SetColor("_EmissiveColor", Color.blue);
			}

			private void Update()
			{
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				((Renderer)((Component)this).gameObject.GetComponent<MeshRenderer>()).material.SetFloat("_EmissivePower", 3000f + 3000f * Mathf.Abs(Mathf.Sin(5f * BraveTime.ScaledTimeSinceStartup)));
				((Component)this).gameObject.transform.localRotation = Quaternion.Euler(0f, 0f, 360f * (BraveTime.ScaledTimeSinceStartup % 10f));
			}
		}

		[HarmonyPatch(typeof(tk2dSpriteCollectionData), "Init")]
		private class SpriteCollectionInitPatch
		{
			private const string _FALLBACK_SHADER = "tk2d/BlendVertexColor";

			private const string _BETTER_FALLBACK_SHADER = "Brave/PlayerShader";

			private static HashSet<Material> _ProcessedMaterialCache = new HashSet<Material>();

			private static Dictionary<string, Func<string>> _MaterialShaderReplacements = new Dictionary<string, Func<string>>
			{
				{
					"psoggun material",
					() => "Brave/PlayerShader"
				},
				{
					"guonpsog material",
					() => "Brave/PlayerShader"
				},
				{
					"oddments material",
					() => "Brave/LitTk2dCustomFalloffTiltedCutoutEmissive"
				},
				{
					"item_collection material",
					() => "Brave/PlayerShader"
				},
				{
					"active_item material",
					() => "Brave/PlayerShader"
				},
				{
					"projectile material",
					() => "Brave/PlayerShader"
				},
				{
					"debuff material",
					() => "Brave/LitTk2dCustomFalloffTiltedCutoutEmissive"
				},
				{
					"pickup material",
					() => "Brave/PlayerShader"
				},
				{
					"ophanaim material",
					() => "Brave/LitTk2dCustomFalloffTiltedCutoutEmissive"
				},
				{
					"modderbullet material",
					() => "Brave/PlayerShader"
				},
				{
					"glockulus material",
					() => "Brave/PlayerShader"
				}
			};

			private static void Postfix(tk2dSpriteCollectionData __instance)
			{
				if ((Object)(object)__instance.material != (Object)null && !_ProcessedMaterialCache.Contains(__instance.material))
				{
					if (_MaterialShaderReplacements.TryGetValue(((Object)__instance.material).name, out var value))
					{
						string text = value();
						__instance.material.shader = ShaderCache.Acquire(text);
					}
					else if (((Object)__instance.material.shader).name == "tk2d/BlendVertexColor")
					{
						__instance.material.shader = ShaderCache.Acquire("Brave/PlayerShader");
					}
					_ProcessedMaterialCache.Add(__instance.material);
				}
			}
		}
	}
	[BepInPlugin("pretzel.etg.psogshaderfix", "Planetside Shader Fix", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Initialisation : BaseUnityPlugin
	{
		public void Awake()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Expected O, but got Unknown
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				Stopwatch stopwatch = Stopwatch.StartNew();
				Harmony val = new Harmony("pretzel.etg.psogshaderfix");
				val.PatchAll();
				stopwatch.Stop();
				ETGModConsole.Log((object)("Initialized <color=#" + ColorUtility.ToHtmlStringRGB(C.MOD_COLOR).ToLower() + ">Planetside Shader Fix v1.0.0</color> in " + (float)stopwatch.ElapsedMilliseconds / 1000f + " seconds"), false);
			}
			catch (Exception ex)
			{
				ETGModConsole.Log((object)ex.Message, false);
				ETGModConsole.Log((object)ex.StackTrace, false);
			}
		}
	}
}