diff --git a/README.md b/README.md index 01a38ec..fb06e42 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ LITTLE ROBOT I LOVE HER, THE CLOCKWORK ANGEL OF THE SNOW BEGOTTEN IT CLAMBERS AN Jobs: - Modelling - [ ] Bodies - - [ ] Arms + - [x] Arms - [x] Pickaxe - [x] Grabby - - [ ] Heater - - [ ] Harpoon? + - [x] Heater + - [x] Harpoon? - [ ] Cliff - [ ] Rocks - [ ] Obstacles diff --git a/project.godot b/project.godot index 83f8015..6ee6eb1 100644 --- a/project.godot +++ b/project.godot @@ -59,3 +59,9 @@ ActivateArm6={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":54,"key_label":0,"unicode":54,"location":0,"echo":false,"script":null) ] } + +[layer_names] + +3d_physics/layer_1="World" +3d_physics/layer_2="RaycastPlane" +3d_physics/layer_3="Arm" diff --git a/raw_assets/harpoon.blend b/raw_assets/harpoon.blend new file mode 100644 index 0000000..dd4a852 Binary files /dev/null and b/raw_assets/harpoon.blend differ diff --git a/raw_assets/harpoon.blend1 b/raw_assets/harpoon.blend1 new file mode 100644 index 0000000..da25de0 Binary files /dev/null and b/raw_assets/harpoon.blend1 differ diff --git a/scenes/body.tscn b/scenes/body.tscn index 1bf8d2f..1f00e63 100644 --- a/scenes/body.tscn +++ b/scenes/body.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=6 format=3 uid="uid://dgm3241ceqpim"] +[gd_scene load_steps=7 format=3 uid="uid://dgm3241ceqpim"] [ext_resource type="Script" path="res://scripts/body.gd" id="1_21au4"] [ext_resource type="PackedScene" uid="uid://nusoljma3t55" path="res://scenes/pickaxe_arm.tscn" id="2_m4hhp"] @@ -11,11 +11,13 @@ height = 10.0 [sub_resource type="SphereShape3D" id="SphereShape3D_16w3w"] radius = 5.0 -[node name="Body" type="RigidBody3D" node_paths=PackedStringArray("arms")] +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_vlifr"] +plane = Plane(1000, 0, 0, 0) + +[node name="Body" type="RigidBody3D"] axis_lock_linear_x = true axis_lock_angular_z = true script = ExtResource("1_21au4") -arms = [NodePath("ArmPivot/PickaxeArm")] [node name="MeshInstance3D" type="MeshInstance3D" parent="."] mesh = SubResource("SphereMesh_jcpb6") @@ -31,3 +33,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.8945, 0) [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 32, 0, 0) script = ExtResource("3_mslwr") + +[node name="RaycastPlane" type="StaticBody3D" parent="."] +collision_layer = 2 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="RaycastPlane"] +shape = SubResource("WorldBoundaryShape3D_vlifr") diff --git a/scenes/main_scene.tscn b/scenes/main_scene.tscn index 91614d6..7bb9cf0 100644 --- a/scenes/main_scene.tscn +++ b/scenes/main_scene.tscn @@ -39,6 +39,7 @@ layout_mode = 3 anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 +mouse_filter = 2 metadata/_edit_lock_ = true [node name="World" type="Node3D" parent="."] diff --git a/scenes/menu.tscn b/scenes/menu.tscn index 670ca43..fcbfed3 100644 --- a/scenes/menu.tscn +++ b/scenes/menu.tscn @@ -12,6 +12,33 @@ [ext_resource type="Texture2D" uid="uid://en11sbhcxflt" path="res://assets/startNote.png" id="9_pbwjt"] [ext_resource type="Texture2D" uid="uid://3w080vs4k15v" path="res://assets/instructions.png" id="10_hirgk"] +[sub_resource type="Animation" id="Animation_5l3d8"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureButton:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-0.133149] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.240703] +} + [sub_resource type="Animation" id="Animation_bqavq"] resource_name = "idle" length = 1.5 @@ -41,33 +68,6 @@ tracks/1/keys = { "values": [0.0872665, -0.0872665] } -[sub_resource type="Animation" id="Animation_5l3d8"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("TextureButton:rotation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [-0.133149] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("TextureRect:rotation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.240703] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_rcg3x"] _data = { "RESET": SubResource("Animation_5l3d8"), diff --git a/scenes/story_frame_scene.tscn b/scenes/story_frame_scene.tscn index 67c738e..0444914 100644 --- a/scenes/story_frame_scene.tscn +++ b/scenes/story_frame_scene.tscn @@ -4,6 +4,21 @@ [ext_resource type="Texture2D" uid="uid://b0olfb3q10r26" path="res://assets/storyImage1.png" id="2_8se21"] [ext_resource type="Texture2D" uid="uid://due5f7l8a66rm" path="res://assets/frame1.png" id="3_lqbjx"] +[sub_resource type="Animation" id="Animation_do1id"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("background:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-47, 46)] +} + [sub_resource type="Animation" id="Animation_wrkak"] resource_name = "idle" length = 20.0 @@ -21,21 +36,6 @@ tracks/0/keys = { "values": [Vector2(-47, 46), Vector2(53, -44)] } -[sub_resource type="Animation" id="Animation_do1id"] -length = 0.001 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("background:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(-47, 46)] -} - [sub_resource type="AnimationLibrary" id="AnimationLibrary_jgudp"] _data = { "RESET": SubResource("Animation_do1id"), @@ -60,12 +60,14 @@ offset_left = -47.0 offset_top = 46.0 offset_right = 603.0 offset_bottom = 696.0 +texture = ExtResource("2_8se21") [node name="foreground" type="TextureRect" parent="."] layout_mode = 0 offset_top = -1.0 offset_right = 651.0 offset_bottom = 650.0 +texture = ExtResource("3_lqbjx") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { diff --git a/scripts/arm.gd b/scripts/arm.gd index 5085d81..0e8e706 100644 --- a/scripts/arm.gd +++ b/scripts/arm.gd @@ -2,20 +2,20 @@ class_name Arm extends Node3D @onready var camera: Camera3D = $"../../Camera3D" @onready var target: Marker3D = $Target +@onready var ik_skeleton: SkeletonIK3D = $Skeleton3D/SkeletonIK3D @export var action: StringName -# Called when the node enters the scene tree for the first time. func _ready() -> void: - $Skeleton3D/PhysicalBoneSimulator3D.physical_bones_start_simulation() - pass # Replace with function body. + #$Skeleton3D/PhysicalBoneSimulator3D.physical_bones_start_simulation() + pass # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: + #ik_skeleton.start() pass - func update_target_pos() -> void: var mouse_pos: Vector2 = camera.get_window().get_mouse_position() @@ -29,4 +29,6 @@ func update_target_pos() -> void: if collision == null: return var arm_target_pos: Vector3 = collision["position"] - target.global_position = arm_target_pos + print(collision) + target.global_position.z = arm_target_pos.z + target.global_position.y = arm_target_pos.y