---------------------------------------------------
-- MAX SCRIPT (made using 3dsmax version 7.5)    --
-- RandomLights2.ms, version 2.0                 --
-- (C) 2005 Sergio Dilonardo - www.dilonardo.com --
---------------------------------------------------

floaterMain = newRolloutFloater "Create Random Lights" 200 300

rollout rolloutAbout "About"
(
	label lblAbout1 "(C) 2005 Sergio Dilonardo"
	label lblAbout2 "www.dilonardo.com"
)

rollout rolloutParameters "Parameters"
(
	spinner spnLightsCount "Lights:" range:[1,500,1] type:#integer
	spinner spnPositionMin "Minimum Position:" range:[-1000000000,1000000000,-400] type:#worldunits
	spinner spnPositionMax "Maximum Position:" range:[-1000000000,1000000000,400] type:#worldunits
	spinner spnIntensityMin "Minimum Intensity:" range:[0,1000000,.3] type:#float
	spinner spnIntensityMax "Maximum Intensity:" range:[0,1000000,1] type:#float
	checkbox chkCastShadows "Cast Shadows" checked:false
	checkbox chkUseAttenuation "Use Attenuation" checked:true

	button btnCreateLights "Create Lights"
	on btnCreateLights pressed do
	(
		posMinimum = spnPositionMin.value
		posMaximum = spnPositionMax.value
		valIntensityMin = spnIntensityMin.value
		valIntensityMax = spnIntensityMax.value
		numNbLights = spnLightsCount.value
		boolCastShadows = chkCastShadows.checked
		boolUseAttenuation = chkUseAttenuation.checked
		
		for counter = 1 to numNbLights do
		(
			lightNewOmni = omniLight()
			
			lightNewOmni.multiplier = random valIntensityMin valIntensityMax
			lightNewOmni.color.r = random 0 255
			lightNewOmni.color.g = random 0 255
			lightNewOmni.color.b = random 0 255
			
			lightNewOmni.position.x = random posMinimum posMaximum
			lightNewOmni.position.y = random posMinimum posMaximum
			lightNewOmni.position.z = random posMinimum posMaximum
			
			lightNewOmni.castShadows = boolCastShadows
			
			lightNewOmni.farAttenStart = abs( posMaximum - posMinimum ) / 20
			lightNewOmni.farAttenEnd = abs( posMaximum - posMinimum )
			lightNewOmni.useFarAtten = boolUseAttenuation
			lightNewOmni.showFarAtten = boolUseAttenuation
		)

		--closeRolloutFloater floaterMain
	)
)

addRollout rolloutParameters floaterMain
addRollout rolloutAbout floaterMain