using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using Brimstone.BallDistanceJobs;
using Md.PlayerGolfer;
using Microsoft.CodeAnalysis;
using Mono.Cecil;
using Mono.Cecil.Cil;
using MonoDetour;
using MonoDetour.Cil;
using MonoDetour.DetourTypes;
using MonoDetour.HookGen;
using MonoMod.Cil;
using Unity.Collections;
using Unity.Jobs;
using Unity.Mathematics;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: IgnoresAccessChecksTo("GameAssembly")]
[assembly: IgnoresAccessChecksTo("SharedAssembly")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("com.github.LyricLy.BetterDistanceEstimation")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("0.2.1.0")]
[assembly: AssemblyInformationalVersion("0.2.1+f374b0922c235f891844493681bd2383ee494409")]
[assembly: AssemblyProduct("com.github.LyricLy.BetterDistanceEstimation")]
[assembly: AssemblyTitle("BetterDistanceEstimation")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.2.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[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;
}
}
}
public struct LyricLyFirstGroundHitDistancesJob : IJobParallelFor
{
public NativeArray<float> normalizedInitialSpeeds;
public NativeHashMap<int2, JobsTerrain> spatiallyHashedTerrains;
public NativeHashMap<int, int> globalTerrainLayerIndicesPerLevelTerrainLayer;
public NativeArray<float> allTerrainLayerWeights;
public NativeArray<float> allTerrainHeights;
public NativeList<SecondaryOutOfBoundsHazardInstance> secondaryOutOfBoundsHazards;
public NativeArray<SwingDistanceEstimation> estimatedDistances;
public float mainOutOfBoundsHazardHeight;
public OutOfBoundsHazard mainOutOfBoundsHazardType;
public float2 terrainSize;
public float2 initialWorldPosition2d;
public float yawRad;
public float fullInitialSpeed;
public float verticalGravity;
public float pitchRad;
public float airDragCoefficient;
public float deltaTime;
public float3 flagPosition;
public LyricLyFirstGroundHitDistancesJob(CalculateFirstGroundHitDistancesJob origJob, float3 flagPosition)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_006e: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0075: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
mainOutOfBoundsHazardType = (OutOfBoundsHazard)0;
normalizedInitialSpeeds = origJob.normalizedInitialSpeeds;
spatiallyHashedTerrains = origJob.spatiallyHashedTerrains;
globalTerrainLayerIndicesPerLevelTerrainLayer = origJob.globalTerrainLayerIndicesPerLevelTerrainLayer;
allTerrainLayerWeights = origJob.allTerrainLayerWeights;
allTerrainHeights = origJob.allTerrainHeights;
secondaryOutOfBoundsHazards = origJob.secondaryOutOfBoundsHazards;
estimatedDistances = origJob.estimatedDistances;
mainOutOfBoundsHazardHeight = origJob.mainOutOfBoundsHazardHeight;
terrainSize = origJob.terrainSize;
initialWorldPosition2d = origJob.initialWorldPosition2d;
yawRad = origJob.yawRad;
fullInitialSpeed = origJob.fullInitialSpeed;
verticalGravity = origJob.verticalGravity;
pitchRad = origJob.pitchRad;
airDragCoefficient = origJob.airDragCoefficient;
deltaTime = origJob.deltaTime;
this.flagPosition = flagPosition;
}
public void Execute(int initialSpeedIndex)
{
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_0186: Unknown result type (might be due to invalid IL or missing references)
//IL_018e: Unknown result type (might be due to invalid IL or missing references)
//IL_0102: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_0111: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_011b: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
//IL_0134: Unknown result type (might be due to invalid IL or missing references)
//IL_014e: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0156: Unknown result type (might be due to invalid IL or missing references)
//IL_015b: Unknown result type (might be due to invalid IL or missing references)
//IL_0160: Unknown result type (might be due to invalid IL or missing references)
//IL_0165: Unknown result type (might be due to invalid IL or missing references)
//IL_016a: Unknown result type (might be due to invalid IL or missing references)
//IL_0177: Unknown result type (might be due to invalid IL or missing references)
//IL_017c: Unknown result type (might be due to invalid IL or missing references)
//IL_0181: Unknown result type (might be due to invalid IL or missing references)
//IL_019e: Unknown result type (might be due to invalid IL or missing references)
//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
//IL_01de: Unknown result type (might be due to invalid IL or missing references)
//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
//IL_0216: Unknown result type (might be due to invalid IL or missing references)
//IL_021d: Unknown result type (might be due to invalid IL or missing references)
//IL_021e: Unknown result type (might be due to invalid IL or missing references)
//IL_0223: Unknown result type (might be due to invalid IL or missing references)
//IL_0228: Unknown result type (might be due to invalid IL or missing references)
//IL_022a: Unknown result type (might be due to invalid IL or missing references)
//IL_022d: Unknown result type (might be due to invalid IL or missing references)
//IL_0232: Unknown result type (might be due to invalid IL or missing references)
//IL_0237: Unknown result type (might be due to invalid IL or missing references)
//IL_023a: Unknown result type (might be due to invalid IL or missing references)
//IL_023d: Unknown result type (might be due to invalid IL or missing references)
//IL_0245: Unknown result type (might be due to invalid IL or missing references)
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
//IL_0252: Unknown result type (might be due to invalid IL or missing references)
//IL_0255: Unknown result type (might be due to invalid IL or missing references)
//IL_0261: Unknown result type (might be due to invalid IL or missing references)
//IL_026a: Unknown result type (might be due to invalid IL or missing references)
//IL_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_0277: Unknown result type (might be due to invalid IL or missing references)
//IL_0283: Unknown result type (might be due to invalid IL or missing references)
//IL_028e: Unknown result type (might be due to invalid IL or missing references)
//IL_0294: Unknown result type (might be due to invalid IL or missing references)
//IL_0297: Invalid comparison between Unknown and I4
//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
//IL_0299: Unknown result type (might be due to invalid IL or missing references)
//IL_029b: Unknown result type (might be due to invalid IL or missing references)
//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
float num = default(float);
float num2 = default(float);
math.sincos(yawRad, ref num, ref num2);
float2 val = default(float2);
((float2)(ref val))..ctor(num, num2);
float num3 = normalizedInitialSpeeds[initialSpeedIndex] * fullInitialSpeed;
float num4 = default(float);
float num5 = default(float);
math.sincos(pitchRad, ref num4, ref num5);
float2 val2 = new float2(num4, num5) * num3;
LyricLyFirstGroundHitDistancesJob us = this;
float2 val3 = default(float2);
((float2)(ref val3))..ctor(0f, verticalGravity);
Vector2 val4 = Vector2.zero;
float2 simPos = float2.zero;
float2 val5 = ((float3)(ref flagPosition)).xz / 2f;
float2 val6 = default(float2);
((float2)(ref val6))..ctor(0f - flagPosition.z, flagPosition.x);
float num6 = val6.y * val.x - val6.x * val.y;
float ledgeX = (val6.y * val5.x - val6.x * val5.y) / num6;
while (val4.y <= simPos.y || simPos.y > Floor())
{
val2 += val3 * us.deltaTime;
val2 *= math.max(0f, 1f - us.airDragCoefficient * math.lengthsq(val2) * us.deltaTime);
val4 = float2.op_Implicit(simPos);
simPos += val2 * us.deltaTime;
}
float num7 = ((val4.x <= ledgeX && simPos.y > ledgeX) ? ledgeX : math.lerp(val4.x, simPos.x, BMath.InverseLerp(val4.y, simPos.y, Floor())));
float2 val7 = initialWorldPosition2d + num7 * val;
int2 spatialHash = TerrainManager.GetSpatialHash(val7, terrainSize);
TerrainLayer val8 = (TerrainLayer)(-1);
OutOfBoundsHazard val9 = (OutOfBoundsHazard)(-1);
JobsTerrain val10 = default(JobsTerrain);
if (spatiallyHashedTerrains.TryGetValue(spatialHash, ref val10))
{
float heightAt = ((JobsTerrain)(ref val10)).GetHeightAt(val7, allTerrainHeights);
float num8 = default(float);
OutOfBoundsHazard val11 = default(OutOfBoundsHazard);
int num9 = default(int);
BoundsJobHelper.IsInOutOfBoundsHazard(new float3(val7.x, heightAt, val7.y), secondaryOutOfBoundsHazards, mainOutOfBoundsHazardHeight, mainOutOfBoundsHazardType, ref num8, ref val11, ref num9);
if ((int)val11 >= 0)
{
val9 = val11;
}
else
{
int dominantLayerIndexAt = ((JobsTerrain)(ref val10)).GetDominantLayerIndexAt(val7, allTerrainLayerWeights);
int num10 = default(int);
if (globalTerrainLayerIndicesPerLevelTerrainLayer.TryGetValue(dominantLayerIndexAt, ref num10))
{
val8 = (TerrainLayer)num10;
}
}
}
estimatedDistances[initialSpeedIndex] = new SwingDistanceEstimation(num7, val8, val9);
float Floor()
{
if (!(ledgeX > 0f) || !(simPos.x > ledgeX))
{
return 0f;
}
return us.flagPosition.y;
}
}
}
namespace Md.PlayerGolfer
{
internal static class _OnBUpdate_g__UpdateHoleDistanceEstimationForOwnBall_153_4
{
public delegate void PrefixSignature(PlayerGolfer self);
public delegate void PostfixSignature(PlayerGolfer self);
public static MonoDetourHook Prefix(PrefixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null)
{
return (manager ?? DefaultMonoDetourManager.Instance).Hook<PrefixDetour>(Target(), (Delegate)hook, config, applyByDefault);
}
public static MonoDetourHook Postfix(PostfixSignature hook, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null)
{
return (manager ?? DefaultMonoDetourManager.Instance).Hook<PostfixDetour>(Target(), (Delegate)hook, config, applyByDefault);
}
public static MonoDetourHook ILHook(Manipulator manipulator, MonoDetourConfig? config = null, bool applyByDefault = true, MonoDetourManager? manager = null)
{
return (manager ?? DefaultMonoDetourManager.Instance).ILHook(Target(), manipulator, config, applyByDefault);
}
public static MethodBase Target()
{
Type typeFromHandle = typeof(PlayerGolfer);
MethodInfo method = typeFromHandle.GetMethod("<OnBUpdate>g__UpdateHoleDistanceEstimationForOwnBall|153_4", (BindingFlags)(-1), null, Array.Empty<Type>(), null);
if ((object)method == null)
{
throw new MissingMethodException("PlayerGolfer", "<OnBUpdate>g__UpdateHoleDistanceEstimationForOwnBall|153_4");
}
return method;
}
}
internal static class get_PlayerInfo
{
}
internal static class set_PlayerInfo
{
}
internal static class get_IsInitialized
{
}
internal static class get_OwnBall
{
}
internal static class get_LocalPlayerLatestImmediateEliminationReason
{
}
internal static class set_LocalPlayerLatestImmediateEliminationReason
{
}
internal static class get_LocalPlayerLatestEliminationPosition
{
}
internal static class set_LocalPlayerLatestEliminationPosition
{
}
internal static class get_LocalPlayerEliminationTimestamp
{
}
internal static class set_LocalPlayerEliminationTimestamp
{
}
internal static class get_SwingNormalizedPower
{
}
internal static class set_SwingNormalizedPower
{
}
internal static class get_SwingPitch
{
}
internal static class set_SwingPitch
{
}
internal static class get_ServerOutOfBoundsTimerEliminationTimestamp
{
}
internal static class set_ServerOutOfBoundsTimerEliminationTimestamp
{
}
internal static class get_IsAimingSwing
{
}
internal static class set_IsAimingSwing
{
}
internal static class get_IsChargingSwing
{
}
internal static class set_IsChargingSwing
{
}
internal static class get_IsSwinging
{
}
internal static class set_IsSwinging
{
}
internal static class get_LockOnTarget
{
}
internal static class set_LockOnTarget
{
}
internal static class get_IsActiveOnGreen
{
}
internal static class set_IsActiveOnGreen
{
}
internal static class get_IsAheadOfBall
{
}
internal static class get_MatchResolution
{
}
internal static class get_IsMatchResolved
{
}
internal static class get_ClubVfxSettings
{
}
internal static class add_Initialized
{
}
internal static class remove_Initialized
{
}
internal static class add_MatchResolutionChanged
{
}
internal static class remove_MatchResolutionChanged
{
}
internal static class add_LocalPlayerOwnBallChanged
{
}
internal static class remove_LocalPlayerOwnBallChanged
{
}
internal static class add_LocalPlayerIsAimingSwingChanged
{
}
internal static class remove_LocalPlayerIsAimingSwingChanged
{
}
internal static class add_LocalPlayerStartedChargingSwing
{
}
internal static class remove_LocalPlayerStartedChargingSwing
{
}
internal static class add_LocalPlayerStoppedChargingSwing
{
}
internal static class remove_LocalPlayerStoppedChargingSwing
{
}
internal static class add_LocalPlayerMatchResolutionChanged
{
}
internal static class remove_LocalPlayerMatchResolutionChanged
{
}
internal static class add_PlayerHitOwnBall
{
}
internal static class remove_PlayerHitOwnBall
{
}
internal static class add_AnyPlayerMatchResolutionChanged
{
}
internal static class remove_AnyPlayerMatchResolutionChanged
{
}
internal static class add_AnyPlayerEliminated
{
}
internal static class remove_AnyPlayerEliminated
{
}
internal static class ReturnButtonPrompts
{
}
internal static class ReturnBallToPlayer
{
}
internal static class FinishHole
{
}
internal static class CmdReturnBallToPlayerFromConsole
{
}
internal static class CmdRestartBall
{
}
internal static class ServerReturnBallToPlayer
{
}
internal static class CmdFinishHole
{
}
internal static class InitializeStatics
{
}
internal static class Awake
{
}
internal static class OnWillBeDestroyed
{
}
internal static class OnStartServer
{
}
internal static class OnStopServer
{
}
internal static class OnStartLocalPlayer
{
}
internal static class OnStopLocalPlayer
{
}
internal static class OnBUpdate
{
}
internal static class ServerInitializeAsParticipant
{
}
internal static class ServerInitializeAsSpectator
{
}
internal static class ServerSpawnBall
{
}
internal static class InformIsSpectatingChanged
{
}
internal static class InformEnteredGolfCart
{
}
internal static class TryReactToBlownAirhorn
{
}
internal static class InformScored
{
}
internal static class InformCourseStateChanged
{
}
internal static class InformLocalPlayerIsHoldingAimChanged
{
}
internal static class InformLocalPlayerIsRespawningChanged
{
}
internal static class InformLocalPlayerKnockedOut
{
}
internal static class InformLocalPlayerStartedDiving
{
}
internal static class ServerEliminate
{
}
internal static class RpcInformWillBeEliminated
{
}
internal static class OnLocalPlayerWillBeEliminated
{
}
internal static class GetEliminationReason
{
}
internal static class CmdSetPotentialEliminationReason
{
}
internal static class ServerSetPotentialEliminationReason
{
}
internal static class ServerClearPotentialEliminationResponsibility
{
}
internal static class SetPitch
{
}
internal static class ApplySwingPitchPreset
{
}
internal static class GetSwingPreset
{
}
internal static class CycleSwingPitchPreset
{
}
internal static class TryStartChargingSwing
{
}
internal static class ReleaseSwingCharge
{
}
internal static class ReleaseSwingChargeInternal
{
}
internal static class SwingRoutine
{
}
internal static class CmdPlaySwingVfxForAllClients
{
}
internal static class RpcPlaySwingVfx
{
}
internal static class PlaySwingVfxInternal
{
}
internal static class CancelAllActions
{
}
internal static class TryCancelSwingCharge
{
}
internal static class CancelSwing
{
}
internal static class OnFinishedSwinging
{
}
internal static class CmdInformHitOwnBall
{
}
internal static class OnPlayerHitOwnBall
{
}
internal static class TryGetBestLockOnTarget
{
}
internal static class CanHitCollider
{
}
internal static class SetPitchInternal
{
}
internal static class GetPitchPresetIndex
{
}
internal static class UpdateIsAimingSwing
{
}
internal static class CanAimSwing
{
}
internal static class SetIsChargingSwing
{
}
internal static class SetLockOnTarget
{
}
internal static class ServerTrySetMatchResolution
{
}
internal static class UpdateSwingNormalizedPower
{
}
internal static class GetSwingHitBox
{
}
internal static class GetSwingDirection
{
}
internal static class GetSwingHittablePriority
{
}
internal static class UpdateOverchargedVfx
{
}
internal static class SetIsPlayingOverchargedVfx
{
}
internal static class ClearOverchargedVfx
{
}
internal static class ServerUpdateIsActiveOnGreen
{
}
internal static class IsAimingSwingNetworked
{
}
internal static class CanRotate
{
}
internal static class CanMove
{
}
internal static class CanInterruptSwing
{
}
internal static class OnServerWasHitByItem
{
}
internal static class OnServerWasHitByRocketLauncherBackBlast
{
}
internal static class OnServerWasHitByDive
{
}
internal static class OnServerIsOnGreenChanged
{
}
internal static class OnServerBoundsStateChanged
{
}
internal static class OnServerMatchStateChanged
{
}
internal static class OnLocalPlayerIsGroundedChanged
{
}
internal static class OnLocalPlayerIsKnockedOutChanged
{
}
internal static class OnLocalPlayerEquippedItemChanged
{
}
internal static class OnLockOnTargetWillBeDestroyed
{
}
internal static class OnLockOnTargetPlayerIsVisibleChanged
{
}
internal static class OnLockOnTargetPlayerMatchResolutionChanged
{
}
internal static class OnIsInitializedChanged
{
}
internal static class OnOwnBallChanged
{
}
internal static class OnMatchResolutionChanged
{
}
internal static class OnIsAheadOfBallChanged
{
}
internal static class UpdateSwingStanceButtonPrompt
{
}
internal static class UpdateAdjustAnglePrompt
{
}
internal static class _ctor
{
}
internal static class _cctor
{
}
internal static class _OnBUpdate_g__ServerUpdatePotentialEliminationReason_153_0
{
}
internal static class _OnBUpdate_g__IsAheadOfBall_153_1
{
}
internal static class _OnBUpdate_g__UpdateSwingTrajectoryPreview_153_2
{
}
internal static class _OnBUpdate_g__UpdateLockOn_153_3
{
}
internal static class _ServerInitializeAsParticipant_g__ClaimTee_154_0
{
}
internal static class _ServerInitializeAsParticipant_g__SpawnBallOnTee_154_1
{
}
internal static class _ServerEliminate_g__CanRespawn_166_0
{
}
internal static class _ServerEliminate_g__ReportElimination_166_1
{
}
internal static class _TryStartChargingSwing_g__CanStartSwing_177_0
{
}
internal static class _ReleaseSwingChargeInternal_g__CanReleaseSwingCharge_179_0
{
}
internal static class _SwingRoutine_g__GetEffectiveLockOnTargetSwingPitchFor_180_0
{
}
internal static class _SwingRoutine_g__ShouldInterruptSwing_180_1
{
}
internal static class _SwingRoutine_g__TryPlaySwingVfx_180_2
{
}
internal static class _SwingRoutine_g__PlaySwingVfxForAllClients_180_3
{
}
internal static class _UpdateIsAimingSwing_g__ShouldAimSwing_194_0
{
}
internal static class _ServerTrySetMatchResolution_g__CanSetResolution_198_0
{
}
internal static class _UpdateOverchargedVfx_g__ShouldPlay_203_0
{
}
internal static class _SetIsPlayingOverchargedVfx_g__PlayOverchargedVfx_204_0
{
}
internal static class _ServerUpdateIsActiveOnGreen_g__IsActiveOnGreen_206_0
{
}
internal static class _OnMatchResolutionChanged_g__OnLocalPlayerMatchResolved_225_0
{
}
internal static class _UpdateAdjustAnglePrompt_g__ReturnPrompt_228_0
{
}
internal static class Weaved
{
}
internal static class get_NetworkisInitialized
{
}
internal static class set_NetworkisInitialized
{
}
internal static class get_NetworkownTee
{
}
internal static class set_NetworkownTee
{
}
internal static class get_NetworkownBall
{
}
internal static class set_NetworkownBall
{
}
internal static class get_NetworkmatchResolution
{
}
internal static class set_NetworkmatchResolution
{
}
internal static class get_NetworkisAheadOfBall
{
}
internal static class set_NetworkisAheadOfBall
{
}
internal static class UserCode_CmdReturnBallToPlayerFromConsole
{
}
internal static class InvokeUserCode_CmdReturnBallToPlayerFromConsole
{
}
internal static class UserCode_CmdRestartBall
{
}
internal static class InvokeUserCode_CmdRestartBall
{
}
internal static class UserCode_CmdFinishHole
{
}
internal static class InvokeUserCode_CmdFinishHole
{
}
internal static class UserCode_RpcInformWillBeEliminated__EliminationReason__Vector3
{
}
internal static class InvokeUserCode_RpcInformWillBeEliminated__EliminationReason__Vector3
{
}
internal static class UserCode_CmdSetPotentialEliminationReason__PlayerGolfer__EliminationReason
{
}
internal static class InvokeUserCode_CmdSetPotentialEliminationReason__PlayerGolfer__EliminationReason
{
}
internal static class UserCode_CmdPlaySwingVfxForAllClients__Single__Boolean__Boolean__NetworkConnectionToClient
{
}
internal static class InvokeUserCode_CmdPlaySwingVfxForAllClients__Single__Boolean__Boolean__NetworkConnectionToClient
{
}
internal static class UserCode_RpcPlaySwingVfx__NetworkConnectionToClient__Single__Boolean__Boolean
{
}
internal static class InvokeUserCode_RpcPlaySwingVfx__NetworkConnectionToClient__Single__Boolean__Boolean
{
}
internal static class UserCode_CmdInformHitOwnBall
{
}
internal static class InvokeUserCode_CmdInformHitOwnBall
{
}
internal static class SerializeSyncVars
{
}
internal static class DeserializeSyncVars
{
}
internal static class SwingDistanceEstimation
{
internal static class _ctor
{
}
internal static class _ctor_System_Single_TerrainLayer_OutOfBoundsHazard
{
}
}
internal static class TerrainLayerNormalizedSwingPower
{
internal static class _ctor
{
}
internal static class get_Invalid
{
}
internal static class IsInvalid
{
}
}
internal static class TerrainLayerNormalizedSwingPowerComparer
{
internal static class _ctor
{
}
internal static class Compare
{
}
}
internal static class __c__DisplayClass166_0
{
internal static class _ctor
{
}
}
internal static class __c__DisplayClass180_0
{
internal static class _ctor
{
}
}
internal static class __c__DisplayClass198_0
{
internal static class _ctor
{
}
}
internal static class _SwingRoutine_d__180
{
internal static class _ctor
{
}
internal static class System_IDisposable_Dispose
{
}
internal static class MoveNext
{
}
internal static class System_Collections_Generic_IEnumerator_System_Object__get_Current
{
}
internal static class System_Collections_IEnumerator_Reset
{
}
internal static class System_Collections_IEnumerator_get_Current
{
}
}
}
namespace MonoDetour.HookGen
{
internal static class DefaultMonoDetourManager
{
internal static MonoDetourManager Instance { get; } = New();
internal static MonoDetourManager New()
{
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Expected O, but got Unknown
return new MonoDetourManager(typeof(DefaultMonoDetourManager).Assembly.GetName().Name);
}
}
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
internal class MonoDetourTargetsAttribute : Attribute, IMonoDetourTargets
{
public Type? TargetType { get; }
public bool IncludeNestedTypes { get; set; }
public string[]? Members { get; set; }
public string[]? MemberNamePrefixes { get; set; }
public string[]? MemberNameSuffixes { get; set; }
public bool GenerateControlFlowVariants { get; set; }
public MonoDetourTargetsAttribute(Type? targetType = null)
{
TargetType = targetType;
IncludeNestedTypes = true;
base..ctor();
}
}
}
namespace BepInEx
{
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
[Conditional("CodeGeneration")]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class BepInAutoPluginAttribute : Attribute
{
public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
{
}
}
}
namespace BepInEx.Preloader.Core.Patching
{
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
[Conditional("CodeGeneration")]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class PatcherAutoPluginAttribute : Attribute
{
public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
{
}
}
}
namespace Microsoft.CodeAnalysis
{
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace BetterDistanceEstimation
{
[MonoDetourTargets(typeof(PlayerGolfer))]
public class PlayerGolferHooks
{
[CompilerGenerated]
private static class <>O
{
public static Manipulator <0>__ILHook_CallOurJob;
public static Func<CalculateFirstGroundHitDistancesJob, int, int, JobHandle, JobHandle> <1>__Schedule;
}
[MonoDetourHookInitialize]
private static void Init()
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Expected O, but got Unknown
object obj = <>O.<0>__ILHook_CallOurJob;
if (obj == null)
{
Manipulator val = ILHook_CallOurJob;
<>O.<0>__ILHook_CallOurJob = val;
obj = (object)val;
}
_OnBUpdate_g__UpdateHoleDistanceEstimationForOwnBall_153_4.ILHook((Manipulator)obj);
}
private static void ILHook_CallOurJob(ILManipulationInfo info)
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
//IL_01de: Unknown result type (might be due to invalid IL or missing references)
ILWeaver w = new ILWeaver(info);
TypeReference val3 = default(TypeReference);
Instruction current = w.MatchRelaxed(new Predicate<Instruction>[6]
{
(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 301) && w.SetCurrentTo(x),
(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 1),
(Instruction x) => ILPatternMatchingExt.MatchLdloca(x, 9),
(Instruction x) => ILPatternMatchingExt.MatchInitobj(x, ref val3),
(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 9),
(Instruction x) => ILPatternMatchingExt.MatchCall(x, (MethodBase)new Func<CalculateFirstGroundHitDistancesJob, int, int, JobHandle, JobHandle>(IJobParallelForExtensions.Schedule<CalculateFirstGroundHitDistancesJob>).Method)
}).ThrowIfFailure().Current;
TypeReference val2 = default(TypeReference);
Instruction current2 = w.MatchRelaxed(new Predicate<Instruction>[6]
{
(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 301),
(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 1),
(Instruction x) => ILPatternMatchingExt.MatchLdloca(x, 9),
(Instruction x) => ILPatternMatchingExt.MatchInitobj(x, ref val2),
(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 9),
(Instruction x) => ILPatternMatchingExt.MatchCall(x, (MethodBase)new Func<CalculateFirstGroundHitDistancesJob, int, int, JobHandle, JobHandle>(IJobParallelForExtensions.Schedule<CalculateFirstGroundHitDistancesJob>).Method) && w.SetCurrentTo(x)
}).ThrowIfFailure().Current;
w.RemoveRangeAndShiftLabels(current, current2);
w.InsertBeforeCurrent((IEnumerable<InstructionOrEnumerable>)new <>z__ReadOnlyArray<InstructionOrEnumerable>((InstructionOrEnumerable[])(object)new InstructionOrEnumerable[2]
{
InstructionOrEnumerable.op_Implicit(w.Create(OpCodes.Ldarg, 0)),
InstructionOrEnumerable.op_Implicit(w.CreateDelegateCall<Func<CalculateFirstGroundHitDistancesJob, PlayerGolfer, JobHandle>>((Func<CalculateFirstGroundHitDistancesJob, PlayerGolfer, JobHandle>)delegate(CalculateFirstGroundHitDistancesJob origJob, PlayerGolfer that)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
Vector3 val = ((Component)GolfHoleManager.MainHole).transform.position - ((Component)that.NetworkownBall).transform.position;
return IJobParallelForExtensions.Schedule<LyricLyFirstGroundHitDistancesJob>(new LyricLyFirstGroundHitDistancesJob(origJob, float3.op_Implicit(val)), 301, 1, default(JobHandle));
}))
}));
}
}
[BepInPlugin("com.github.LyricLy.BetterDistanceEstimation", "BetterDistanceEstimation", "0.2.1")]
public class Plugin : BaseUnityPlugin
{
public const string Id = "com.github.LyricLy.BetterDistanceEstimation";
public static string Name => "BetterDistanceEstimation";
public static string Version => "0.2.1";
private void Awake()
{
MonoDetourManager.InvokeHookInitializers(Assembly.GetExecutingAssembly());
}
}
}
namespace System.Diagnostics.CodeAnalysis
{
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class ConstantExpectedAttribute : Attribute
{
public object? Min { get; set; }
public object? Max { get; set; }
}
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class ExperimentalAttribute : Attribute
{
public string DiagnosticId { get; }
public string? UrlFormat { get; set; }
public ExperimentalAttribute(string diagnosticId)
{
DiagnosticId = diagnosticId;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
[ExcludeFromCodeCoverage]
internal sealed class MemberNotNullAttribute : Attribute
{
public string[] Members { get; }
public MemberNotNullAttribute(string member)
{
Members = new string[1] { member };
}
public MemberNotNullAttribute(params string[] members)
{
Members = members;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
[ExcludeFromCodeCoverage]
internal sealed class MemberNotNullWhenAttribute : Attribute
{
public bool ReturnValue { get; }
public string[] Members { get; }
public MemberNotNullWhenAttribute(bool returnValue, string member)
{
ReturnValue = returnValue;
Members = new string[1] { member };
}
public MemberNotNullWhenAttribute(bool returnValue, params string[] members)
{
ReturnValue = returnValue;
Members = members;
}
}
[AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class SetsRequiredMembersAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class StringSyntaxAttribute : Attribute
{
public const string CompositeFormat = "CompositeFormat";
public const string DateOnlyFormat = "DateOnlyFormat";
public const string DateTimeFormat = "DateTimeFormat";
public const string EnumFormat = "EnumFormat";
public const string GuidFormat = "GuidFormat";
public const string Json = "Json";
public const string NumericFormat = "NumericFormat";
public const string Regex = "Regex";
public const string TimeOnlyFormat = "TimeOnlyFormat";
public const string TimeSpanFormat = "TimeSpanFormat";
public const string Uri = "Uri";
public const string Xml = "Xml";
public string Syntax { get; }
public object?[] Arguments { get; }
public StringSyntaxAttribute(string syntax)
{
Syntax = syntax;
Arguments = new object[0];
}
public StringSyntaxAttribute(string syntax, params object?[] arguments)
{
Syntax = syntax;
Arguments = arguments;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class UnscopedRefAttribute : Attribute
{
}
}
namespace System.Runtime.Versioning
{
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class RequiresPreviewFeaturesAttribute : Attribute
{
public string? Message { get; }
public string? Url { get; set; }
public RequiresPreviewFeaturesAttribute()
{
}
public RequiresPreviewFeaturesAttribute(string? message)
{
Message = message;
}
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
public IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class CallerArgumentExpressionAttribute : Attribute
{
public string ParameterName { get; }
public CallerArgumentExpressionAttribute(string parameterName)
{
ParameterName = parameterName;
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class CollectionBuilderAttribute : Attribute
{
public Type BuilderType { get; }
public string MethodName { get; }
public CollectionBuilderAttribute(Type builderType, string methodName)
{
BuilderType = builderType;
MethodName = methodName;
}
}
[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class CompilerFeatureRequiredAttribute : Attribute
{
public const string RefStructs = "RefStructs";
public const string RequiredMembers = "RequiredMembers";
public string FeatureName { get; }
public bool IsOptional { get; set; }
public CompilerFeatureRequiredAttribute(string featureName)
{
FeatureName = featureName;
}
}
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class InterpolatedStringHandlerArgumentAttribute : Attribute
{
public string[] Arguments { get; }
public InterpolatedStringHandlerArgumentAttribute(string argument)
{
Arguments = new string[1] { argument };
}
public InterpolatedStringHandlerArgumentAttribute(params string[] arguments)
{
Arguments = arguments;
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class InterpolatedStringHandlerAttribute : Attribute
{
}
[EditorBrowsable(EditorBrowsableState.Never)]
[ExcludeFromCodeCoverage]
internal static class IsExternalInit
{
}
[AttributeUsage(AttributeTargets.Method, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class ModuleInitializerAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class OverloadResolutionPriorityAttribute : Attribute
{
public int Priority { get; }
public OverloadResolutionPriorityAttribute(int priority)
{
Priority = priority;
}
}
[AttributeUsage(AttributeTargets.Parameter, Inherited = true, AllowMultiple = false)]
[ExcludeFromCodeCoverage]
internal sealed class ParamCollectionAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class RequiredMemberAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[ExcludeFromCodeCoverage]
internal sealed class RequiresLocationAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event | AttributeTargets.Interface, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class SkipLocalsInitAttribute : Attribute
{
}
}
[CompilerGenerated]
internal sealed class <>z__ReadOnlyArray<T> : IEnumerable, ICollection, IList, IEnumerable<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection<T>, IList<T>
{
int ICollection.Count => _items.Length;
bool ICollection.IsSynchronized => false;
object ICollection.SyncRoot => this;
object IList.this[int index]
{
get
{
return _items[index];
}
set
{
throw new NotSupportedException();
}
}
bool IList.IsFixedSize => true;
bool IList.IsReadOnly => true;
int IReadOnlyCollection<T>.Count => _items.Length;
T IReadOnlyList<T>.this[int index] => _items[index];
int ICollection<T>.Count => _items.Length;
bool ICollection<T>.IsReadOnly => true;
T IList<T>.this[int index]
{
get
{
return _items[index];
}
set
{
throw new NotSupportedException();
}
}
public <>z__ReadOnlyArray(T[] items)
{
_items = items;
}
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable)_items).GetEnumerator();
}
void ICollection.CopyTo(Array array, int index)
{
((ICollection)_items).CopyTo(array, index);
}
int IList.Add(object value)
{
throw new NotSupportedException();
}
void IList.Clear()
{
throw new NotSupportedException();
}
bool IList.Contains(object value)
{
return ((IList)_items).Contains(value);
}
int IList.IndexOf(object value)
{
return ((IList)_items).IndexOf(value);
}
void IList.Insert(int index, object value)
{
throw new NotSupportedException();
}
void IList.Remove(object value)
{
throw new NotSupportedException();
}
void IList.RemoveAt(int index)
{
throw new NotSupportedException();
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return ((IEnumerable<T>)_items).GetEnumerator();
}
void ICollection<T>.Add(T item)
{
throw new NotSupportedException();
}
void ICollection<T>.Clear()
{
throw new NotSupportedException();
}
bool ICollection<T>.Contains(T item)
{
return ((ICollection<T>)_items).Contains(item);
}
void ICollection<T>.CopyTo(T[] array, int arrayIndex)
{
((ICollection<T>)_items).CopyTo(array, arrayIndex);
}
bool ICollection<T>.Remove(T item)
{
throw new NotSupportedException();
}
int IList<T>.IndexOf(T item)
{
return ((IList<T>)_items).IndexOf(item);
}
void IList<T>.Insert(int index, T item)
{
throw new NotSupportedException();
}
void IList<T>.RemoveAt(int index)
{
throw new NotSupportedException();
}
}