﻿-- chunkname: @scripts/settings/input/default_ingame_input_filters.lua

local default_ingame_input_filters = {
	move_keys = {
		filter_type = "virtual_axis",
		input_mappings = {
			back = "keyboard_move_backward",
			forward = "keyboard_move_forward",
			left = "keyboard_move_left",
			right = "keyboard_move_right",
		},
	},
	axis_virtual_move_forward = {
		filter_type = "vector_y",
		input_mappings = "move_controller",
	},
	axis_virtual_move_backward = {
		filter_type = "vector_y",
		input_mappings = "move_controller",
		scale = -1,
	},
	axis_virtual_move_right = {
		filter_type = "vector_x",
		input_mappings = "move_controller",
	},
	axis_virtual_move_left = {
		filter_type = "vector_x",
		input_mappings = "move_controller",
		scale = -1,
	},
	move_forward = {
		filter_type = "scalar_combine",
		max_value = 1,
		min_value = 0,
		to_bool = false,
		input_mappings = {
			button_1 = "axis_virtual_move_forward",
			button_2 = "keyboard_move_forward",
		},
	},
	move_backward = {
		filter_type = "scalar_combine",
		max_value = 1,
		min_value = 0,
		to_bool = false,
		input_mappings = {
			button_1 = "axis_virtual_move_backward",
			button_2 = "keyboard_move_backward",
		},
	},
	move_right = {
		filter_type = "scalar_combine",
		max_value = 1,
		min_value = 0,
		to_bool = false,
		input_mappings = {
			button_1 = "axis_virtual_move_right",
			button_2 = "keyboard_move_right",
		},
	},
	move_left = {
		filter_type = "scalar_combine",
		max_value = 1,
		min_value = 0,
		to_bool = false,
		input_mappings = {
			button_1 = "axis_virtual_move_left",
			button_2 = "keyboard_move_left",
		},
	},
	move = {
		filter_type = "axis_combine",
		input_mappings = {
			source1 = "move_keys",
			source2 = "move_controller",
		},
	},
	look = {
		filter_type = "scale_vector3",
		input_mappings = "look_raw",
		invert_look_y = "mouse_invert_look_y",
		scale = "mouse_look_scale",
	},
	look_ranged = {
		filter_type = "scale_vector3",
		input_mappings = "look_raw",
		invert_look_y = "mouse_invert_look_y",
		scale = "mouse_look_scale_ranged",
	},
	look_ranged_alternate_fire = {
		filter_type = "scale_vector3",
		input_mappings = "look_raw",
		invert_look_y = "mouse_invert_look_y",
		scale = "mouse_look_scale_ranged_alternate_fire",
	},
	look_controller = {
		accelerate_time_ref = 0.5,
		acceleration_delay = 0.2,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 2,
		multiplier_x = 7,
		multiplier_y = 0.75,
		power_of = 1.75,
		response_curve = "controller_response_curve",
		response_curve_strength = "controller_response_curve_strength",
		scale = "controller_look_scale",
		scale_y = "controller_look_scale_vertical",
		threshold = 0.925,
	},
	look_controller_improved = {
		accelerate_time_ref = 0.2,
		acceleration_delay = 0,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 2,
		multiplier_x = 5.5,
		multiplier_y = 1.5,
		power_of = 1.75,
		response_curve = "controller_response_curve",
		response_curve_strength = "controller_response_curve_strength",
		scale = "controller_look_scale",
		scale_y = "controller_look_scale_vertical",
		threshold = 0.925,
		x_acceleration_threshold = 0.4,
	},
	look_controller_lunging = {
		accelerate_time_ref = 0.5,
		acceleration_delay = 0,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 1,
		multiplier_x = 2.2,
		multiplier_y = 0.75,
		power_of = 1,
		response_curve = "controller_response_curve",
		response_curve_strength = "controller_response_curve_strength",
		scale = "controller_look_scale",
		scale_y = "controller_look_scale_vertical",
		threshold = 0.925,
	},
	look_controller_ranged = {
		accelerate_time_ref = 0.6,
		acceleration_delay = 0.05,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 1.9,
		multiplier_x = 4.6,
		multiplier_y = 0.9,
		power_of = 2,
		response_curve = "controller_response_curve_ranged",
		response_curve_strength = "controller_response_curve_strength_ranged",
		scale = "controller_look_scale_ranged",
		scale_y = "controller_look_scale_vertical_ranged",
		threshold = 0.925,
		turnaround_delay = 0.01,
		turnaround_multiplier_x = 12,
		turnaround_power_of = 2,
		turnaround_threshold = 0.925,
		turnaround_time_ref = 0.75,
	},
	look_controller_ranged_improved = {
		accelerate_time_ref = 0.2,
		acceleration_delay = 0,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 2,
		multiplier_x = 5.5,
		multiplier_y = 1.5,
		power_of = 1.75,
		response_curve = "controller_response_curve_ranged",
		response_curve_strength = "controller_response_curve_strength_ranged",
		scale = "controller_look_scale_ranged",
		scale_y = "controller_look_scale_vertical_ranged",
		threshold = 0.925,
		x_acceleration_threshold = 0.4,
	},
	look_controller_ranged_alternate_fire = {
		accelerate_time_ref = 0.3,
		acceleration_delay = 0,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 0.45,
		multiplier_x = 1.9,
		multiplier_y = 0.8,
		power_of = 1.1,
		response_curve = "controller_response_curve_ranged",
		response_curve_strength = "controller_response_curve_strength_ranged",
		scale = "controller_look_scale_ranged_alternate_fire",
		scale_y = "controller_look_scale_vertical_ranged_alternate_fire",
		threshold = 0.8,
	},
	look_controller_ranged_alternate_fire_improved = {
		accelerate_time_ref = 0.1,
		acceleration_delay = 0,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 1,
		multiplier_x = 1.9,
		multiplier_y = 0.8,
		power_of = 1.75,
		response_curve = "controller_response_curve_ranged",
		response_curve_strength = "controller_response_curve_strength_ranged",
		scale = "controller_look_scale_ranged_alternate_fire",
		scale_y = "controller_look_scale_vertical_ranged_alternate_fire",
		threshold = 0.925,
		x_acceleration_threshold = 0.4,
	},
	look_controller_melee = {
		accelerate_time_ref = 0.15,
		acceleration_delay = 0.01,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 2.5,
		multiplier_x = 3.6,
		multiplier_y = 1,
		power_of = 1.5,
		response_curve = "controller_response_curve",
		response_curve_strength = "controller_response_curve_strength",
		scale = "controller_look_scale",
		scale_y = "controller_look_scale_vertical",
		threshold = 0.65,
		turnaround_delay = 0.01,
		turnaround_multiplier_x = 3,
		turnaround_power_of = 2,
		turnaround_threshold = 0.925,
		turnaround_time_ref = 0.75,
	},
	look_controller_melee_sticky = {
		accelerate_time_ref = 0.3,
		acceleration_delay = 0,
		enable_acceleration = "controller_enable_acceleration",
		filter_type = "scale_vector3_xy_accelerated_x",
		input_mappings = "look_raw_controller",
		invert_look_y = "controller_invert_look_y",
		multiplier_min_x = 1,
		multiplier_x = 1,
		multiplier_y = 1,
		power_of = 1,
		response_curve = "controller_response_curve",
		response_curve_strength = "controller_response_curve_strength",
		scale = "controller_look_scale",
		scale_y = "controller_look_scale_vertical",
		threshold = 0.65,
		turnaround_delay = 0.01,
		turnaround_multiplier_x = 3,
		turnaround_power_of = 2,
		turnaround_threshold = 0.925,
		turnaround_time_ref = 0.75,
	},
}

return settings("DefaultIngameInputFilters", default_ingame_input_filters)
