diff --git a/Player.gd b/Player.gd new file mode 100644 index 0000000..7114599 --- /dev/null +++ b/Player.gd @@ -0,0 +1,60 @@ +extends CharacterBody3D + +#-----------Parameters--------------# +var SPEED = 10 +var movement = Vector3(0,0,0) +var collisionLayer = 3 +var inventory = 0 #1 - full, 0 - empty inventory +var resource = 0 + +var is_alive = true +@onready var is_player1 : bool + +#---------------Methods--------------# +func _init(player_id): + is_player1 = player_id + +func _physics_process(delta): + + movement = Vector3(0,0,0) + + check_interaction() + check_input() + velocity = movement * SPEED + move_and_slide() + +func check_input(): + + if is_player1: + if Input.is_action_pressed("p1_left"): + movement.x -= 1 + if Input.is_action_pressed("p1_right"): + movement.x += 1 + if Input.is_action_pressed("p1_up"): + movement.z -= 1 + if Input.is_action_pressed("p1_down"): + movement.z += 1 + else: + if Input.is_action_pressed("p2_left"): + movement.x -= 1 + if Input.is_action_pressed("p2_right"): + movement.x += 1 + if Input.is_action_pressed("p2_up"): + movement.z -= 1 + if Input.is_action_pressed("p2_down"): + movement.z += 1 + +func check_interaction(): + var action + if is_player1: + action = "p1_interaction" + else: + action = "p2_interaction" + + if Input.is_action_just_pressed(action): + for body in $HitBox.get_overlapping_bodies(): + if body.has_method("interact") and body.name == "Storage": + #Storage interaction + if not inventory: + body.interact() + diff --git a/Player.tscn b/Player.tscn new file mode 100644 index 0000000..09d130e --- /dev/null +++ b/Player.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=5 format=3 uid="uid://33i0mf37sy3o"] + +[ext_resource type="Script" path="res://Player.gd" id="1_4xmv0"] +[ext_resource type="Texture2D" uid="uid://cy6x8d3xe8lux" path="res://icon.svg" id="2_yjfj7"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_p76ml"] +radius = 0.500599 +height = 1.99403 + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ndwdl"] +radius = 0.567567 + +[node name="CharacterBody3D" type="CharacterBody3D"] +script = ExtResource("1_4xmv0") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +visible = false +shape = SubResource("CapsuleShape3D_p76ml") + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 2, 0) +texture = ExtResource("2_yjfj7") + +[node name="HitBox" type="Area3D" parent="."] +collision_mask = 5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="HitBox"] +shape = SubResource("CapsuleShape3D_ndwdl") diff --git a/Storage.tscn b/Storage.tscn index ae3b755..4828e40 100644 --- a/Storage.tscn +++ b/Storage.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=2 format=3 uid="uid://1sr52olklfyy"] +[gd_scene load_steps=2 format=3 uid="uid://cet80w4yr8rse"] [ext_resource type="Script" path="res://scripts/Modules/Storage.gd" id="1_guwoh"] diff --git a/icon.svg.import b/icon.svg.import index 4925300..28894bf 100644 --- a/icon.svg.import +++ b/icon.svg.import @@ -3,25 +3,27 @@ importer="texture" type="CompressedTexture2D" uid="uid://cy6x8d3xe8lux" -path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +path.s3tc="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex" +path.etc2="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.etc2.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true } [deps] source_file="res://icon.svg" -dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex", "res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.etc2.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/lossy_quality=0.7 compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,7 +33,7 @@ process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 -detect_3d/compress_to=1 +detect_3d/compress_to=0 svg/scale=1.0 editor/scale_with_editor_scale=false editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot index 0e16438..b5d3569 100644 --- a/project.godot +++ b/project.godot @@ -39,13 +39,59 @@ _global_script_class_icons={ [application] config/name="Semester Game Jam 2022" +run/main_scene="res://node_3d.tscn" config/features=PackedStringArray("4.0", "Forward Plus") config/icon="res://icon.svg" [input] -test={ +p1_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +] +} +p1_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +] +} +p1_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +] +} +p1_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +] +} +p1_interact={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"unicode":0,"echo":false,"script":null) +] +} +p2_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) +] +} +p2_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) +] +} +p2_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) +] +} +p2_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) +] +} +p2_interact={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":46,"unicode":0,"echo":false,"script":null) ] }