basic twitch integration working well, many bugs
This commit is contained in:
parent
4b4702c90a
commit
cdd8cdea3a
31 changed files with 1254 additions and 6 deletions
56
addons/water_shader/scripts/Camera3D.gd
Normal file
56
addons/water_shader/scripts/Camera3D.gd
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#Copyright © 2022 Marc Nahr: https://github.com/MarcPhi/godot-free-look-camera
|
||||
extends Camera3D
|
||||
|
||||
@export_range(0, 10, 0.01) var sensitivity : float = 3
|
||||
@export_range(0, 1000, 0.1) var default_velocity : float = 5
|
||||
@export_range(0, 10, 0.01) var speed_scale : float = 1.17
|
||||
@export_range(1, 100, 0.1) var boost_speed_multiplier : float = 3.0
|
||||
@export var max_speed : float = 1000
|
||||
@export var min_speed : float = 0.2
|
||||
|
||||
@onready var _velocity = default_velocity
|
||||
|
||||
func _input(event):
|
||||
if not current:
|
||||
return
|
||||
|
||||
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
|
||||
if event is InputEventMouseMotion:
|
||||
rotation.y -= event.relative.x / 1000 * sensitivity
|
||||
rotation.x -= event.relative.y / 1000 * sensitivity
|
||||
rotation.x = clamp(rotation.x, PI/-2, PI/2)
|
||||
|
||||
if event is InputEventMouseButton:
|
||||
match event.button_index:
|
||||
MOUSE_BUTTON_RIGHT:
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED if event.pressed else Input.MOUSE_MODE_VISIBLE)
|
||||
MOUSE_BUTTON_WHEEL_UP: # increase fly velocity
|
||||
_velocity = clamp(_velocity * speed_scale, min_speed, max_speed)
|
||||
MOUSE_BUTTON_WHEEL_DOWN: # decrease fly velocity
|
||||
_velocity = clamp(_velocity / speed_scale, min_speed, max_speed)
|
||||
|
||||
func _process(delta):
|
||||
if not current:
|
||||
return
|
||||
|
||||
var direction = Vector3(
|
||||
float(Input.is_action_pressed("right")) - float(Input.is_action_pressed("left")),
|
||||
float(Input.is_action_pressed("down")) - float(Input.is_action_pressed("up")),
|
||||
float(Input.is_action_pressed("backward")) - float(Input.is_action_pressed("forward"))
|
||||
).normalized()
|
||||
|
||||
if Input.is_action_pressed("boost"):
|
||||
translate(direction * _velocity * delta * boost_speed_multiplier)
|
||||
else:
|
||||
translate(direction * _velocity * delta)
|
||||
|
||||
var rotation_input = Vector2(
|
||||
float(Input.is_action_pressed("rotate_down")) - float(Input.is_action_pressed("rotate_up")),
|
||||
float(Input.is_action_pressed("rotate_right")) - float(Input.is_action_pressed("rotate_left"))
|
||||
).normalized()
|
||||
|
||||
if (rotation_input.length() > 0.0):
|
||||
rotation.y -= rotation_input.y / 300 * sensitivity
|
||||
rotation.x -= rotation_input.x / 300 * sensitivity
|
||||
rotation.x = clamp(rotation.x, PI/-2, PI/2)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue