initial commit

This commit is contained in:
pennyrigate 2025-08-04 00:39:07 -04:00
commit cffda6e18e
58 changed files with 10952 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

74
Player/player.gd Normal file
View file

@ -0,0 +1,74 @@
class_name Player extends CharacterBody3D
@export_range(1, 35, 1) var speed: float = 10 # m/s
@export_range(10, 400, 1) var acceleration: float = 100 # m/s^2
@export_range(0.1, 3.0, 0.1) var jump_height: float = 1 # m
@export_range(0.1, 3.0, 0.1, "or_greater") var camera_sens: float = 1
var jumping: bool = false
var mouse_captured: bool = false
var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
var move_dir: Vector2 # Input direction for movement
var look_dir: Vector2 # Input direction for look/aim
var walk_vel: Vector3 # Walking velocity
var grav_vel: Vector3 # Gravity velocity
var jump_vel: Vector3 # Jumping velocity
@onready var camera: Camera3D = $Camera
func _ready() -> void:
capture_mouse()
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventMouseMotion:
look_dir = event.relative * 0.001
if mouse_captured: _rotate_camera()
if Input.is_action_just_pressed(&"exit"): get_tree().quit()
func _physics_process(delta: float) -> void:
if Input.is_action_just_pressed(&"jump"): jumping = true
if mouse_captured: _handle_joypad_camera_rotation(delta)
velocity = _walk(delta) + _gravity(delta) + _jump(delta)
move_and_slide()
func capture_mouse() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
mouse_captured = true
func release_mouse() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
mouse_captured = false
func _rotate_camera(sens_mod: float = 1.0) -> void:
camera.rotation.y -= look_dir.x * camera_sens * sens_mod
camera.rotation.x = clamp(camera.rotation.x - look_dir.y * camera_sens * sens_mod, -1.5, 1.5)
func _handle_joypad_camera_rotation(delta: float, sens_mod: float = 1.0) -> void:
var joypad_dir: Vector2 = Input.get_vector(&"look_left", &"look_right", &"look_up", &"look_down")
if joypad_dir.length() > 0:
look_dir += joypad_dir * delta
_rotate_camera(sens_mod)
look_dir = Vector2.ZERO
func _walk(delta: float) -> Vector3:
move_dir = Input.get_vector(&"move_left", &"move_right", &"move_forward", &"move_backwards")
var _forward: Vector3 = camera.global_transform.basis * Vector3(move_dir.x, 0, move_dir.y)
var walk_dir: Vector3 = Vector3(_forward.x, 0, _forward.z).normalized()
walk_vel = walk_vel.move_toward(walk_dir * speed * move_dir.length(), acceleration * delta)
return walk_vel
func _gravity(delta: float) -> Vector3:
grav_vel = Vector3.ZERO if is_on_floor() else grav_vel.move_toward(Vector3(0, velocity.y - gravity, 0), gravity * delta)
return grav_vel
func _jump(delta: float) -> Vector3:
if jumping:
if is_on_floor(): jump_vel = Vector3(0, sqrt(4 * jump_height * gravity), 0)
jumping = false
return jump_vel
jump_vel = Vector3.ZERO if is_on_floor() or is_on_ceiling_only() else jump_vel.move_toward(Vector3.ZERO, gravity * delta)
return jump_vel

1
Player/player.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://b0c02p6ckmpdq

63
Player/player.tscn Normal file
View file

@ -0,0 +1,63 @@
[gd_scene load_steps=9 format=3 uid="uid://cdk6hwb4hi2wc"]
[ext_resource type="Script" uid="uid://b0c02p6ckmpdq" path="res://Player/player.gd" id="1_2f8j2"]
[ext_resource type="Shader" uid="uid://c1ws5xtabtopc" path="res://psx_camera/psx_camera_shader.gdshader" id="2_4ntmi"]
[ext_resource type="PackedScene" uid="uid://cp7wldb12tpm8" path="res://hand.obj" id="3_btcbx"]
[ext_resource type="Texture2D" uid="uid://1osrvxkcjngu" path="res://handtexture.png" id="4_gwnis"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3rsb5"]
radius = 0.3
height = 1.8
[sub_resource type="ShaderMaterial" id="ShaderMaterial_btcbx"]
render_priority = 0
shader = ExtResource("2_4ntmi")
shader_parameter/enable_fog = true
shader_parameter/fog_color = Color(0.494245, 1.40181e-06, 2.40654e-07, 1)
shader_parameter/noise_color = Color(0, 0, 0, 1)
shader_parameter/fog_distance = 100.0
shader_parameter/fog_fade_range = 50.0
shader_parameter/enable_noise = true
shader_parameter/noise_time_fac = 4.0
shader_parameter/enable_color_limitation = true
shader_parameter/color_levels = 32
shader_parameter/enable_dithering = true
shader_parameter/dither_strength = 0.3
[sub_resource type="QuadMesh" id="QuadMesh_gwnis"]
material = SubResource("ShaderMaterial_btcbx")
flip_faces = true
size = Vector2(2, 2)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k53q1"]
albedo_texture = ExtResource("4_gwnis")
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_2f8j2")
[node name="CShape" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0)
shape = SubResource("CapsuleShape3D_3rsb5")
debug_color = Color(0.141176, 0.427451, 0.92549, 0.784314)
[node name="Camera" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0)
fov = 80.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="Camera"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.800495)
mesh = SubResource("QuadMesh_gwnis")
[node name="Hand" type="MeshInstance3D" parent="Camera"]
transform = Transform3D(0.00214306, 0.0134455, 0.262051, 0.0219563, 0.286891, -0.0123296, -0.364886, 0.0173421, 0.000797189, 0.87108, -0.736241, -0.589995)
skeleton = NodePath("../..")
[node name="hand" parent="Camera" instance=ExtResource("3_btcbx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.599934, -1.7, -1.91879)
visible = false
[node name="Cube" parent="Camera/hand" index="0"]
transform = Transform3D(-0.103623, 0, 0.191626, 0, 0.289734, 0, -0.33763, 0, -0.0588126, 1.31232, 0.743218, 1.03127)
surface_material_override/0 = SubResource("StandardMaterial3D_k53q1")
[editable path="Camera/hand"]

BIN
Player/test.fbx Normal file

Binary file not shown.

38
Player/test.fbx.import Normal file
View file

@ -0,0 +1,38 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b8ghcqrk5f230"
path="res://.godot/imported/test.fbx-4751c59649d3f0f207823200ddb16c83.scn"
[deps]
source_file="res://Player/test.fbx"
dest_files=["res://.godot/imported/test.fbx-4751c59649d3f0f207823200ddb16c83.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1