Merge branch 'master' of ssh://play.qtechofficial.com:9940/funnymemellama/funnymemellama

This commit is contained in:
zombie maniac 2023-10-02 00:42:41 -04:00
commit ed5247cc77
Signed by untrusted user: nbrooks211
GPG key ID: F43C85C0DF0C334E
4 changed files with 79 additions and 51 deletions

View file

@ -60,14 +60,14 @@ func interact(other):
func _on_anim_finished(name): func _on_anim_finished(name):
if _resetting: if _resetting:
_sound.stop()
_sound.stream = release_sound
_sound.play()
_button.material = released_material _button.material = released_material
_resetting = false _resetting = false
_triggered = false _triggered = false
if momentary and _triggered: if momentary and _triggered:
_sound.stop()
_sound.stream = release_sound
_sound.play()
_anim.play_backwards('trigger') _anim.play_backwards('trigger')
_resetting = true _resetting = true

View file

@ -11,7 +11,7 @@ func _process(delta):
var v = $Player.velocity var v = $Player.velocity
var hvel = sqrt(v.x ** 2 + v.z ** 2) var hvel = sqrt(v.x ** 2 + v.z ** 2)
var vvel = v.y var vvel = v.y
$Speed.text = 'Speed: %6.2f, %6.2f' % [hvel, vvel] $Speed.text = 'Speed: %6.2f, %6.2f' % [hvel * 16, vvel * 16]
func _input(event: InputEvent): func _input(event: InputEvent):

View file

@ -4,15 +4,18 @@ extends CharacterBody3D
const QUAKE = 0.0625 const QUAKE = 0.0625
const g = -800 * QUAKE const g = -800 * QUAKE
const MAX_SPEED = 320 * QUAKE const MAX_SPEED = 320 * QUAKE
const MAX_AIR_SPEED = 30 * QUAKE
const FRICTION = 4# * QUAKE const FRICTION = 4# * QUAKE
const STOP_SPEED = 100 * QUAKE const STOP_SPEED = 100 * QUAKE
const ACCEL= 10# * QUAKE const ACCEL = 15# * QUAKE
const FORWARD_SPEED = 400 * QUAKE const AIR_ACCEL = 2# * QUAKE
const FORWARD_SPEED = 200 * QUAKE
const SIDE_SPEED = 350 * QUAKE const SIDE_SPEED = 350 * QUAKE
const UP_SPEED = 270 * QUAKE const UP_SPEED = 270 * QUAKE
const JUMP_SPEED = 270 * QUAKE
# const DEACCEL= 8 # const DEACCEL= 8
# const MAX_SLOPE_ANGLE = 30 # const MAX_SLOPE_ANGLE = 30https://www.youtube.com/watch?v=v3zT3Z5apaM
@onready @onready
var camera = $CSGMesh3D/Camera3D var camera = $CSGMesh3D/Camera3D
@ -27,7 +30,7 @@ func _ready():
func _physics_process(delta): func _physics_process(delta):
# Shamelessly stolen code from quake :) # Shamelessly stolen code from quake :)
var fmove = 0.0 var fmove = 0.0
var smove = 0.0 var smove = 0.0
var upmove = 0.0 var upmove = 0.0
@ -40,32 +43,31 @@ func _physics_process(delta):
smove += -SIDE_SPEED smove += -SIDE_SPEED
if Input.is_action_pressed("move_right"): if Input.is_action_pressed("move_right"):
smove += SIDE_SPEED smove += SIDE_SPEED
if Input.is_action_pressed("jump"): #if Input.is_action_pressed("up"):
upmove += UP_SPEED # upmove += UP_SPEED
if Input.is_action_pressed("run"): if Input.is_action_pressed("run"):
fmove *= 2.0 fmove *= 2.0
smove *= 2.0 smove *= 2.0
var wishvel = Vector3() var wishvel = Vector3()
var cam_xform: Transform3D = camera.get_global_transform() var cam_xform: Transform3D = camera.get_global_transform()
var cam_basis: Basis = cam_xform.basis var cam_basis: Basis = cam_xform.basis
wishvel = cam_basis.z * fmove + cam_basis.x * smove wishvel = cam_basis.z * fmove + cam_basis.x * smove
if _noclip: if _noclip:
wishvel.y += upmove wishvel.y += upmove
# else:
# wishvel.y = upmove
var wishdir = wishvel.normalized() var wishdir = wishvel.normalized()
var wishspeed = wishvel.length() var wishspeed = wishvel.length()
if wishspeed > MAX_SPEED: if wishspeed > MAX_SPEED:
wishvel *= MAX_SPEED / wishspeed wishvel *= MAX_SPEED / wishspeed
wishspeed = MAX_SPEED wishspeed = MAX_SPEED
if is_on_floor(): if Input.is_action_pressed("jump") and is_on_floor():
velocity.y += upmove velocity.y += JUMP_SPEED
var vel = velocity var vel = velocity
if _noclip: if _noclip:
vel = wishvel vel = wishvel
@ -73,66 +75,66 @@ func _physics_process(delta):
vel = _apply_friction(vel, delta) vel = _apply_friction(vel, delta)
vel = _apply_accel(vel, wishdir, wishspeed, delta) vel = _apply_accel(vel, wishdir, wishspeed, delta)
else: else:
vel = _apply_air_accel(vel, wishvel, wishspeed, delta) vel = _apply_air_accel(vel, wishvel, delta)
if not _noclip: if not _noclip:
vel.y += g * delta vel.y += g * delta
velocity = vel velocity = vel
move_and_slide() move_and_slide()
$Ball.global_position = camera.global_position - camera.global_transform.basis.z * 2.0 $Ball.global_position = camera.global_position - camera.global_transform.basis.z * 2.0
func _apply_friction(vel: Vector3, delta: float): func _apply_friction(vel: Vector3, delta: float):
var speed = sqrt(vel.x ** 2 + vel.z ** 2) var speed = sqrt(vel.x ** 2 + vel.z ** 2)
if(speed == 0.0): return vel if(speed == 0.0): return vel
# TODO: edge detect friction? # TODO: edge detect friction?
var friction = FRICTION var friction = FRICTION
var control = 0.0 var control = 0.0
if speed < STOP_SPEED: if speed < STOP_SPEED:
control = STOP_SPEED control = STOP_SPEED
else: else:
control = speed control = speed
var newspeed = speed - delta * control * friction var newspeed = speed - delta * control * friction
if newspeed < 0.0: if newspeed < 0.0:
newspeed = 0.0 newspeed = 0.0
else:
newspeed /= speed newspeed /= speed
return vel * newspeed return vel * newspeed
func _apply_accel(vel: Vector3, wishdir: Vector3, wishspeed: float, delta: float): func _apply_accel(vel: Vector3, wishdir: Vector3, wishspeed: float, delta: float):
var currentspeed = vel.dot(wishdir) var currentspeed = vel.dot(wishdir)
var addspeed = wishspeed - currentspeed var addspeed = wishspeed - currentspeed
if addspeed <= 0.0: if addspeed <= 0.0:
return vel return vel
var accelspeed = ACCEL * delta * wishspeed var accelspeed = ACCEL * delta * wishspeed
if accelspeed > addspeed: if accelspeed > addspeed:
accelspeed = addspeed accelspeed = addspeed
return vel + accelspeed * wishdir return vel + accelspeed * wishdir
func _apply_air_accel(vel: Vector3, wishvel: Vector3, wishspeed: float, delta: float): func _apply_air_accel(vel: Vector3, wishvel: Vector3, delta: float):
var wishveloc = wishvel.normalized() var wishveloc = wishvel.normalized()
var wishspd = wishvel.length() var wishspd = wishvel.length()
if wishspd > 30 * QUAKE: if wishspd > MAX_AIR_SPEED:
wishspd = 30 * QUAKE wishspd = MAX_AIR_SPEED
var currentspeed = vel.dot(wishveloc) var currentspeed = vel.dot(wishveloc)
var addspeed = wishspd - currentspeed var addspeed = wishspd - currentspeed
if addspeed <= 0: if addspeed <= 0:
return vel return vel
var accelspeed = ACCEL * wishspeed * delta var accelspeed = AIR_ACCEL * wishspd * delta
if accelspeed > addspeed: if accelspeed > addspeed:
accelspeed = addspeed accelspeed = addspeed
return vel + accelspeed * wishveloc return vel + accelspeed * wishveloc
func _input(event): func _input(event):
@ -142,22 +144,22 @@ func _input(event):
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
else: else:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
if _paused: return if _paused: return
if event.is_action_pressed('noclip'): if event.is_action_pressed('noclip'):
_noclip = not _noclip _noclip = not _noclip
if _noclip: if _noclip:
$CollisionShape3D.disabled = true $CollisionShape3D.disabled = true
else: else:
$CollisionShape3D.disabled = false $CollisionShape3D.disabled = false
# Check for mouse motion input # Check for mouse motion input
if event is InputEventMouseMotion: if event is InputEventMouseMotion:
rotation.y += -event.relative.x * 0.005 rotation.y += -event.relative.x * 0.005
camera.rotation.x += -event.relative.y * 0.005 camera.rotation.x += -event.relative.y * 0.005
camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-70), deg_to_rad(70)) camera.rotation.x = clamp(camera.rotation.x, deg_to_rad(-70), deg_to_rad(70))
if event.is_action_pressed("interact"): if event.is_action_pressed("interact"):
var space_state = get_world_3d().direct_space_state var space_state = get_world_3d().direct_space_state
# use global coordinates, not local to node # use global coordinates, not local to node
@ -169,4 +171,4 @@ func _input(event):
var other: Node3D = result.collider var other: Node3D = result.collider
if other.has_method('interact'): if other.has_method('interact'):
other.interact(self) other.interact(self)

View file

@ -1,10 +1,11 @@
[gd_scene load_steps=11 format=3 uid="uid://cv8621s5oukrb"] [gd_scene load_steps=13 format=3 uid="uid://cv8621s5oukrb"]
[ext_resource type="PackedScene" uid="uid://dyyf1q12dchhq" path="res://Player.tscn" id="2_jba6q"] [ext_resource type="PackedScene" uid="uid://dyyf1q12dchhq" path="res://Player.tscn" id="2_jba6q"]
[ext_resource type="ArrayMesh" uid="uid://bqnoaomgwec3w" path="res://assets/maps/mapentities.obj" id="5_wn745"] [ext_resource type="ArrayMesh" uid="uid://bqnoaomgwec3w" path="res://assets/maps/mapentities.obj" id="5_wn745"]
[ext_resource type="Script" path="res://KeyOverlay.gd" id="6_crgb3"] [ext_resource type="Script" path="res://KeyOverlay.gd" id="6_crgb3"]
[ext_resource type="PackedScene" uid="uid://bp1fooevcl4lk" path="res://devworld.tscn" id="7_1im6f"] [ext_resource type="PackedScene" uid="uid://bp1fooevcl4lk" path="res://devworld.tscn" id="7_1im6f"]
[ext_resource type="Script" path="res://Debug.gd" id="7_2k2sn"] [ext_resource type="Script" path="res://Debug.gd" id="7_2k2sn"]
[ext_resource type="Texture2D" uid="uid://dast4ubkinjb5" path="res://assets/textures/zombietextures_funny/kreb.png" id="7_f82yj"]
[ext_resource type="PackedScene" uid="uid://dnk6bedcy6x6m" path="res://hazardcourse.tscn" id="8_t5ilw"] [ext_resource type="PackedScene" uid="uid://dnk6bedcy6x6m" path="res://hazardcourse.tscn" id="8_t5ilw"]
[sub_resource type="SystemFont" id="SystemFont_4krkk"] [sub_resource type="SystemFont" id="SystemFont_4krkk"]
@ -22,6 +23,10 @@ font_names = PackedStringArray("Monospace")
[sub_resource type="LabelSettings" id="LabelSettings_f35h2"] [sub_resource type="LabelSettings" id="LabelSettings_f35h2"]
font = SubResource("SystemFont_4l16k") font = SubResource("SystemFont_4l16k")
[sub_resource type="Environment" id="Environment_4rf1u"]
ambient_light_source = 1
reflected_light_source = 1
[node name="Root" type="Node"] [node name="Root" type="Node"]
script = ExtResource("7_2k2sn") script = ExtResource("7_2k2sn")
@ -33,7 +38,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 18.9032, 0)
light_color = Color(1, 0.862745, 0.721569, 1) light_color = Color(1, 0.862745, 0.721569, 1)
light_energy = 16.0 light_energy = 16.0
light_size = 400.0 light_size = 400.0
omni_range = 99.7884 shadow_enabled = true
omni_range = 181.439
[node name="Mapentities" type="MeshInstance3D" parent="."] [node name="Mapentities" type="MeshInstance3D" parent="."]
transform = Transform3D(0.039, 0, 0, 0, -1.70474e-09, 0.039, 0, -0.039, -1.70474e-09, 0, 0, 0) transform = Transform3D(0.039, 0, 0, 0, -1.70474e-09, 0.039, 0, -0.039, -1.70474e-09, 0, 0, 0)
@ -61,3 +67,23 @@ offset_right = 113.0
offset_bottom = 136.0 offset_bottom = 136.0
text = "SPEED" text = "SPEED"
label_settings = SubResource("LabelSettings_f35h2") label_settings = SubResource("LabelSettings_f35h2")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_4rf1u")
[node name="SpotLight3D" type="SpotLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -5.12, 12.1948, -30.2711)
light_energy = 500.0
light_projector = ExtResource("7_f82yj")
shadow_enabled = true
spot_range = 52.48
spot_angle = 26.8834
[node name="SpotLight3D" type="SpotLight3D" parent="SpotLight3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04, 0.0400009, 0)
light_energy = 500.0
light_projector = ExtResource("7_f82yj")
light_negative = true
shadow_enabled = true
spot_range = 52.48
spot_angle = 26.8834