// target spot lights only and configure them per the settings public static void Postfix(LightSpawner __instance, BTLight ___spawnedLight) { if (__instance.type == LightSpawner.LightTypes.point) { return; } Log($"adjusting: {__instance.name} ({__instance.transform.parent.name})"); if (settings.ExtraRange) { ___spawnedLight.radius = extraRadius; } if (settings.Intensity != "VANILLA" && IntensityMap.ContainsKey(settings.Intensity)) { if (__instance.name.StartsWith("light")) { // magic numbers.. sorry. adjusted to visuals ___spawnedLight.intensity = IntensityMap[settings.Intensity] / 5f; ___spawnedLight.spotlightAngleOuter = settings.Angle * 1.20f; } else { ___spawnedLight.intensity = IntensityMap[settings.Intensity]; ___spawnedLight.spotlightAngleOuter = settings.Angle; } } }
public static bool Prefix(BTLight __instance, object obj, ref int __result) { try { var one = __instance; var other = obj as BTLight; __result = (int)one.lightType - (int)other.lightType; return(false); } catch (Exception e) { Control.Logger.Error.Log(e); } return(true); }
public static bool Prefix(BTLight light, List <BTLight> ___lightList) { if (BTLightController.InBatchProcess) { BTLightController.LightAdded = true; if (!light.isInLightList) { ___lightList.Add(light); light.isInLightList = true; } return(false); } return(true); }
public static void Prefix(LaserEffect __instance, ref Color[] ___laserColor, ref BTLight ___laserLight, ref LineRenderer ___beamRenderer) { try { Weapon weapon = __instance.weapon; if (weapon.weaponDef.Description.Id == Fields.StreakTargetingLaserId) { Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) lightIntensity: {__instance.lightIntensity}"); Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) lightRadius: {__instance.lightRadius}"); Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) pulseDelay: {__instance.pulseDelay}"); __instance.lightIntensity = 300000f; // Default: 3500000f (SmallLaserPulse: 50000) //__instance.lightRadius = 120; // Default: 100 (SmallLaserPulse: 60) //__instance.pulseDelay = 0.2f; // Default: ? (SmallLaserPulse: -1) Color overrideColor = Fields.TargetingLaserColor; ___beamRenderer = __instance.projectile.GetComponent <LineRenderer>(); Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) __beamRenderer: {___beamRenderer.startColor}, {___beamRenderer.endColor}, {___beamRenderer.startWidth}, {___beamRenderer.endWidth}"); ___beamRenderer.startColor = overrideColor; ___beamRenderer.endColor = overrideColor; ___beamRenderer.startWidth = 1.9f; ___beamRenderer.endWidth = 2.5f; Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) __beamRenderer: {___beamRenderer.startColor}, {___beamRenderer.endColor}, {___beamRenderer.startWidth}, {___beamRenderer.endWidth}"); // Used by LaserEffect.Update() for ___beamRenderer too; ___laserColor[0] = overrideColor; ___laserColor[1] = overrideColor; ___laserLight = ___beamRenderer.GetComponentInChildren <BTLight>(true); ___laserLight.lightColor = overrideColor; Logger.Debug($"[LaserEffect_SetupLaser_PREFIX] ({weapon.parent.DisplayName}) ___laserLight.lightColor: {___laserLight.lightColor}"); // Called in original method, not necessary here... //___laserLight.RefreshLightSettings(true); } } catch (Exception e) { Logger.Error(e); } }
public static void Postfix(LaserEffect __instance, ref Color[] ___laserColor, ref BTLight ___laserLight, ref LineRenderer ___beamRenderer) { try { Weapon weapon = __instance.weapon; if (weapon.weaponDef.Description.Id == Fields.StreakTargetingLaserId) { Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) lightIntensity: {__instance.lightIntensity}"); Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) lightRadius: {__instance.lightRadius}"); Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) pulseDelay: {__instance.pulseDelay}"); Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) __beamRenderer: {___beamRenderer.startColor}, {___beamRenderer.endColor}, {___beamRenderer.startWidth}, {___beamRenderer.endWidth}"); Logger.Debug($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) ___laserLight.lightColor: {___laserLight.lightColor}"); Vector4 tempColor = (Vector4)AccessTools.Field(typeof(BTLight), "tempColor").GetValue(___laserLight); Vector4 linearColor = (Vector4)AccessTools.Field(typeof(BTLight), "linearColor").GetValue(___laserLight); Logger.Info($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) ___laserLight.tempColor: {tempColor}"); Logger.Info($"[LaserEffect_SetupLaser_POSTFIX] ({weapon.parent.DisplayName}) ___laserLight.linearColor: {linearColor}"); } } catch (Exception e) { Logger.Error(e); } }