mirror of
				https://github.com/chev2/gmod-addons.git
				synced 2025-10-30 06:31:35 +00:00 
			
		
		
		
	Auto-Flashlight: Add ability to customize checking frequency
This commit is contained in:
		
							parent
							
								
									6a6db8fa01
								
							
						
					
					
						commit
						8642bfcef4
					
				
					 1 changed files with 33 additions and 4 deletions
				
			
		|  | @ -15,12 +15,18 @@ language.Add( | ||||||
|     "The threshold for the automatic flashlight to trigger. Higher values mean the flashlight will activate in brighter areas. Default: 0.0055" |     "The threshold for the automatic flashlight to trigger. Higher values mean the flashlight will activate in brighter areas. Default: 0.0055" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | language.Add("spawnmenu.options.autoflashlight.cvar.frequency", "Checking Frequency") | ||||||
|  | language.Add( | ||||||
|  |     "spawnmenu.options.autoflashlight.cvartooltip.frequency", | ||||||
|  |     "How often Auto-Flashlight should check to see if the player is in darkness. Default: 0.4" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| -- | -- | ||||||
| -- ConVars, variables & functions | -- ConVars, variables & functions | ||||||
| -- | -- | ||||||
| local CVAR_AUTO_FLASHLIGHT_ENABLED = CreateClientConVar( | local CVAR_AUTO_FLASHLIGHT_ENABLED = CreateClientConVar( | ||||||
|     "cl_flashlight_auto", |     "cl_flashlight_auto", | ||||||
|     "1", |     1, | ||||||
|     true, |     true, | ||||||
|     false, |     false, | ||||||
|     language.GetPhrase("#spawnmenu.options.autoflashlight.cvartooltip.enabled") |     language.GetPhrase("#spawnmenu.options.autoflashlight.cvartooltip.enabled") | ||||||
|  | @ -28,7 +34,7 @@ local CVAR_AUTO_FLASHLIGHT_ENABLED = CreateClientConVar( | ||||||
| 
 | 
 | ||||||
| local CVAR_AUTO_FLASHLIGHT_THRESHOLD = CreateClientConVar( | local CVAR_AUTO_FLASHLIGHT_THRESHOLD = CreateClientConVar( | ||||||
|     "cl_flashlight_auto_threshold", |     "cl_flashlight_auto_threshold", | ||||||
|     "0.0055", |     0.0055, | ||||||
|     true, |     true, | ||||||
|     false, |     false, | ||||||
|     language.GetPhrase("#spawnmenu.options.autoflashlight.cvartooltip.threshold"), |     language.GetPhrase("#spawnmenu.options.autoflashlight.cvartooltip.threshold"), | ||||||
|  | @ -36,6 +42,16 @@ local CVAR_AUTO_FLASHLIGHT_THRESHOLD = CreateClientConVar( | ||||||
|     0.5 |     0.5 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | local CVAR_AUTO_FLASHLIGHT_FREQUENCY = CreateClientConVar( | ||||||
|  |     "cl_flashlight_auto_frequency", | ||||||
|  |     0.4, | ||||||
|  |     true, | ||||||
|  |     false, | ||||||
|  |     language.GetPhrase("#spawnmenu.options.autoflashlight.cvartooltip.frequency"), | ||||||
|  |     0.05, | ||||||
|  |     2 | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| local wasInDarkness = false | local wasInDarkness = false | ||||||
| 
 | 
 | ||||||
| autoflashlight = autoflashlight or {} | autoflashlight = autoflashlight or {} | ||||||
|  | @ -75,7 +91,7 @@ end | ||||||
| -- | -- | ||||||
| -- Main calculation/execution script | -- Main calculation/execution script | ||||||
| -- | -- | ||||||
| timer.Create("AutoFlashlight.DoToggle", 0.2, 0, function() | local function AutoFlashlightDoToggle() | ||||||
|     if not CVAR_AUTO_FLASHLIGHT_ENABLED:GetBool() then return end |     if not CVAR_AUTO_FLASHLIGHT_ENABLED:GetBool() then return end | ||||||
| 
 | 
 | ||||||
|     local ply = LocalPlayer() |     local ply = LocalPlayer() | ||||||
|  | @ -119,7 +135,17 @@ timer.Create("AutoFlashlight.DoToggle", 0.2, 0, function() | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     wasInDarkness = isInDarkness |     wasInDarkness = isInDarkness | ||||||
| end) | end | ||||||
|  | 
 | ||||||
|  | timer.Create("AutoFlashlight.DoToggle", CVAR_AUTO_FLASHLIGHT_FREQUENCY:GetFloat(), 0, AutoFlashlightDoToggle) | ||||||
|  | 
 | ||||||
|  | -- Recreate timer whenever flashlight frequency setting is adjusted | ||||||
|  | cvars.AddChangeCallback("cl_flashlight_auto_frequency", function(convar, oldVal, newVal) | ||||||
|  |     if not tonumber(newVal) then return end | ||||||
|  | 
 | ||||||
|  |     timer.Create("AutoFlashlight.DoToggle", tonumber(newVal), 0, AutoFlashlightDoToggle) | ||||||
|  |     AutoFlashlightDoToggle() | ||||||
|  | end, "AutoFlashlight.RefreshFrequencyCVar") | ||||||
| 
 | 
 | ||||||
| -- | -- | ||||||
| -- Add Sandbox options menu | -- Add Sandbox options menu | ||||||
|  | @ -136,5 +162,8 @@ hook.Add("PopulateToolMenu", "AutoFlashlight.PopulateSpawnmenuCategory", functio | ||||||
| 
 | 
 | ||||||
|         pnl:NumSlider("#spawnmenu.options.autoflashlight.cvar.threshold", "cl_flashlight_auto_threshold", 0, 0.5, 4) |         pnl:NumSlider("#spawnmenu.options.autoflashlight.cvar.threshold", "cl_flashlight_auto_threshold", 0, 0.5, 4) | ||||||
|         pnl:ControlHelp("#spawnmenu.options.autoflashlight.cvartooltip.threshold") |         pnl:ControlHelp("#spawnmenu.options.autoflashlight.cvartooltip.threshold") | ||||||
|  | 
 | ||||||
|  |         pnl:NumSlider("#spawnmenu.options.autoflashlight.cvar.frequency", "cl_flashlight_auto_frequency", 0.05, 2, 2) | ||||||
|  |         pnl:ControlHelp("#spawnmenu.options.autoflashlight.cvartooltip.frequency") | ||||||
|     end) |     end) | ||||||
| end) | end) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue