local g=require(script.Parent.CameraShakeInstance)local q={Bump=function()local q=g.new(2.5,4,.1,.75)q.PositionInfluence=Vector3.new(.15,.15,.15)q.RotationInfluence=Vector3.new(1,1,1)return q end;Explosion=function()local q=g.new(2.5,6,0,.9)q.PositionInfluence=Vector3.new(.25,.25,.25)q.RotationInfluence=Vector3.new(3.5,1,1)return q end;Dash=function()local q=g.new(2,5,0,.85)q.PositionInfluence=Vector3.new(.15,.15,.15)q.RotationInfluence=Vector3.new(2,1,1)return q end;IceZ=function()local q=g.new(2.5,6,0,.9)q.PositionInfluence=Vector3.new(.3,.3,.3)q.RotationInfluence=Vector3.new(3.5,1,1)return q end;LightningStrike=function()local q=g.new(2.5,6,0,.9)q.PositionInfluence=Vector3.new(.25,.25,.25)q.RotationInfluence=Vector3.new(3.5,1,1)return q end;Hit=function()local q=g.new(1,3,.1,1)q.PositionInfluence=Vector3.new(.1,.1,.1)q.RotationInfluence=Vector3.new(2,1.05,1.05)return q end,Twerk=function()local q=g.new(15,20,.1,10)q.PositionInfluence=Vector3.new(.5,.5,.5)q.RotationInfluence=Vector3.new(4,4,4)return q end,Earthquake=function()local q=g.new(.6,3.5,2,10)q.PositionInfluence=Vector3.new(.25,.25,.25)q.RotationInfluence=Vector3.new(1,1,4)return q end;BadTrip=function()local q=g.new(10,.15,5,10)q.PositionInfluence=Vector3.new(0,0,.15)q.RotationInfluence=Vector3.new(2,1,4)return q end,HandheldCamera=function()local q=g.new(1,.25,5,10)q.PositionInfluence=Vector3.new(0,0,0)q.RotationInfluence=Vector3.new(1,.5,.5)return q end,Vibration=function()local q=g.new(.4,20,2,2)q.PositionInfluence=Vector3.new(0,.15,0)q.RotationInfluence=Vector3.new(1.25,0,4)return q end,RoughDriving=function()local q=g.new(1,2,1,1)q.PositionInfluence=Vector3.new(0,0,0)q.RotationInfluence=Vector3.new(1,1,1)return q end}return setmetatable({},{__index=function(g,N)local t=q[N]if type(t)=="\102\117\110\099\116\105\111\110"then return t()end error("\078\111 \112\114\101\115\101\116 \102\111\117\110\100 \119\105\116\104 \105\110\100\101\120 \""..(N.."\""))end})
--[[
	
	CameraShakePresets.Bump
	CameraShakePresets.Explosion
	CameraShakePresets.Earthquake
	CameraShakePresets.BadTrip
	CameraShakePresets.HandheldCamera
	CameraShakePresets.Vibration
	CameraShakePresets.RoughDriving
	
--]]

local CameraShakeInstance = require(script.Parent.CameraShakeInstance)

local CameraShakePresets = {

	-- A high-magnitude, short, yet smooth shake.
	-- Should happen once.
	Bump = function()
		local c = CameraShakeInstance.new(2.5, 4, 0.1, 0.75)
		c.PositionInfluence = Vector3.new(0.15, 0.15, 0.15)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end,

	-- An intense and rough shake.
	-- Should happen once.
	Explosion = function()
		local c = CameraShakeInstance.new(2.5, 6, 0, 0.9)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(3.5, 1, 1)
		return c
	end,

	Dash = function()
		local c = CameraShakeInstance.new(2, 5, 0, 0.85)
		c.PositionInfluence = Vector3.new(0.15, 0.15, 0.15)
		c.RotationInfluence = Vector3.new(2, 1, 1)
		return c
	end,

	IceZ = function()
		local c = CameraShakeInstance.new(2.5, 6, 0, 0.9)
		c.PositionInfluence = Vector3.new(0.3, 0.3, 0.3)
		c.RotationInfluence = Vector3.new(3.5, 1, 1)
		return c
	end,

	LightningStrike = function()
		local c = CameraShakeInstance.new(2.5, 6, 0, 0.9)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(3.5, 1, 1)
		return c
	end,

	Hit = function()
		local c = CameraShakeInstance.new(1, 3, 0.1, 1)
		c.PositionInfluence = Vector3.new(0.1, 0.1, 0.1)
		c.RotationInfluence = Vector3.new(2, 1.05, 1.05)
		return c
	end,

	Twerk = function()
		local c = CameraShakeInstance.new(15, 20, 0.1, 10)
		c.PositionInfluence = Vector3.new(0.5, 0.5, 0.5)
		c.RotationInfluence = Vector3.new(4, 4, 4)
		return c
	end,

	-- A continuous, rough shake
	-- Sustained.
	Earthquake = function()
		local c = CameraShakeInstance.new(0.6, 3.5, 2, 10)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(1, 1, 4)
		return c
	end,

	-- A bizarre shake with a very high magnitude and low roughness.
	-- Sustained.
	BadTrip = function()
		local c = CameraShakeInstance.new(10, 0.15, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0.15)
		c.RotationInfluence = Vector3.new(2, 1, 4)
		return c
	end,

	-- A subtle, slow shake.
	-- Sustained.
	HandheldCamera = function()
		local c = CameraShakeInstance.new(1, 0.25, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 0.5, 0.5)
		return c
	end,

	-- A very rough, yet low magnitude shake.
	-- Sustained.
	Vibration = function()
		local c = CameraShakeInstance.new(0.4, 20, 2, 2)
		c.PositionInfluence = Vector3.new(0, 0.15, 0)
		c.RotationInfluence = Vector3.new(1.25, 0, 4)
		return c
	end,

	-- A slightly rough, medium magnitude shake.
	-- Sustained.
	RoughDriving = function()
		local c = CameraShakeInstance.new(1, 2, 1, 1)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end,
}

return setmetatable({}, {
	__index = function(t, i)
		local f = CameraShakePresets[i]
		if type(f) == "function" then
			return f()
		end
		error('No preset found with index "' .. i .. '"')
	end,
})
