From 5b3a782cfae07376e252a2b8ca3d780fccc2e367 Mon Sep 17 00:00:00 2001 From: anshRastogi02 Date: Fri, 14 Feb 2025 22:57:39 +0530 Subject: [PATCH 1/2] [Added Feat] Advanced Multi Sink Venting Simulation --- 2D Assets/KNATIVE.png | Bin 0 -> 55626 bytes 2D Assets/KNATIVE.png.import | 34 ++++++ 2D Assets/background.png | Bin 13254 -> 0 bytes ConveyerFilter.gd | 42 ++++++++ Scenes/boxClick.tscn | 136 ++++++++++++++++++++++-- Scenes/node_2d.gd | 1 + Scripts/ConveyerController.gd | 26 +++-- Scripts/SinkClick.gd | 3 +- Scripts/conveyor.gd | 4 +- Scripts/draggable_filter.gd | 20 +++- Scripts/event_button.gd | 3 +- Scripts/restart.gd | 1 + Scripts/sink.gd | 4 +- SoundEffects/music.mp3.import | 19 ++++ SoundEffects/sfx_click_start.mp3 | Bin 0 -> 16846 bytes SoundEffects/sfx_click_start.mp3.import | 19 ++++ 16 files changed, 286 insertions(+), 26 deletions(-) create mode 100644 2D Assets/KNATIVE.png create mode 100644 2D Assets/KNATIVE.png.import delete mode 100644 2D Assets/background.png create mode 100644 ConveyerFilter.gd create mode 100644 Scenes/node_2d.gd create mode 100644 SoundEffects/music.mp3.import create mode 100644 SoundEffects/sfx_click_start.mp3 create mode 100644 SoundEffects/sfx_click_start.mp3.import diff --git a/2D Assets/KNATIVE.png b/2D Assets/KNATIVE.png new file mode 100644 index 0000000000000000000000000000000000000000..efb732138cdec647e060fe4496cd8a8b7aedbdaf GIT binary patch literal 55626 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 literal 0 HcmV?d00001 diff --git a/2D Assets/KNATIVE.png.import b/2D Assets/KNATIVE.png.import new file mode 100644 index 0000000..99279ad --- /dev/null +++ b/2D Assets/KNATIVE.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5hqlla5086kp" +path="res://.godot/imported/KNATIVE.png-1c9e246b573182a59d4c482c09479981.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://2D Assets/KNATIVE.png" +dest_files=["res://.godot/imported/KNATIVE.png-1c9e246b573182a59d4c482c09479981.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +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 diff --git a/2D Assets/background.png b/2D Assets/background.png deleted file mode 100644 index 79c2c672687354b8f5921a3fd2f7e3d6800f1758..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13254 zcmeHNi93{C8$ZaNWvoqP%Q9t`tjRKiv1K>*Mnc{!Q^so@Cj0(|5@pR+d|nBSB_ey4 z!AL1(tB5QiG*lm7U;Pp9`<&}~u5(}Kxvu+p&Uxr1)VN;QjwX{xa~R+Q$g9_P?qUsOiGAp zVlgtkMl30o#Pjsa~BZTQO+pB(NT{+1?ok*~WaDcULR z;77rYMh7uPV3D0NzrHi!4Cn7t)57FRkj(qCA1Rv+DHsolIYcShWd^LvIE8QJcyOq1 zD8-zC_XiBkdaS*hl$uLb=W0z!$HMvNnRXhLS|#11@kVhv-Tv=t;Nj;~03u^j?n8j} zMITxB41`jY>|6+#M)#dx8oAanO~bPWwS%5jO8C%`40t>aQNxszweWV89?t^oyh z)zss&iZ65E4uUgRfhT#-fhWWl{!mQwrJA~$g0HM^D`G6tW$#YL_Mcgn)Za&pqygr?x~ z3HgOpY5{vB@_abis`bt4d$-_?OtlQWBGOgW&oi_P)!92Vi~D-`LqYtGFyr??AwJli zcx!_E4SiI9nW>0rR=ra%cLIHmUYyQO!R;N6j_)NCjaiAWc3{I<_OzvtOOoPIlfdIqEwB(_s3&mrp!0&D{{C)WBsq^y&7VBdxLs(AS|` z)Dc*q<8C|js14QtIHu`nbrA`Nu3#0Xqj;{ZbVgKrS35V7Q&RHRd7e} z*W9O-)fnZj^Dn=@><2?MUcIM4`c1G3%sMFN5U)wZ!k$9 z_0Y7uI!lFC_XI2A7K=O=oE8xHqfLMfNh-9w#6{%|WjwCHT-NUR0Omtqi#1ncN{iud z?^{z+6PAl2wcW(gg>$aNn0MTohS{@dUn_?ZIbj-ilNDfmPYv|agT*|9GK8lZ6!Z^dY!ss>A2+_x9@wi87=bg`-OOWogop!`Y;V?Mv z2KZyHx16gf991-KXmVi;V*|c%~Pj5m^S=~bcY-%5DbKjhINvz+*%jUs$BG0-=oUV1DpB32fmBUfSzB}4)ihWtDA~DR6+>cRBgiE|RF1eEswM-drN|#9iRNWPOR^zEN3~Bm3e}_tq=tb?2$Z z%K1OZ1V1mo9@1;~AWHrp!WW*jx4!ru9bFvVTQul4I?|>%QZxRUA-S8y-PbcONKZ3F zz3NYm51Zo??GB&9Uw-B1FEhDqlH6Y$(!H^>adbYlak25L^O8%c-(eDp)Z%9qQH*X4*BjM8t{62+mh zy<69tH`wM`=YwLShKa+=McYqPISJjJh8HP4TiKX=>w>KlT9PeVbhpy8 zuh^hrWz4%u^`|zJ;%f(LlWI%)b8js>t4OeLo%TRZBtLBKQl21>5j#;2U6pRnWm#u# zNUCaVqw}xkEBIp@C)UmSrPc`>Ph77#w!4ft6*@h5gvFQ6Kcm_XSCm$UVwS4q9JN}z z{Rgkr$JBdYjzrYS$;gK{%6Yn&r`wI(zFYGpV#z6)H%Y%sRi(k_-s^-{h?i;&-YaDl zX2K@H68t7rCep@J{vZ5WcWw@1Zk{K+%Bb^rFi_+}wi~dU8DDxmNjiqW$dToRUkg2K z31D`S|)dF#_-3pb1Iu&CUR^_=|_Uc7*NOSe4 z&o3!<<+d2dZNF;l>R{*->JUS5ToNIhpuQ`lVxYPeIY@14G%CJd_pu{lCgS6@1UkZC z+TftLot@<`9lG&he?3U6BY5q& z_%hZPmvApSzg2&Jb5vqEZAs|t(cn5#PigsFSpVv_Fh$EQ!1;af1oP9xyW9omJ{07h zy&1Up@#8y+dy7fvYHp%dK$ZMs|23cCiH-Sia^A=7Pud}GzwFhp4)LeCUUd1?^bU7F zpe>?sj&WC5gW(v1X1rj0lf0(O3Orvmd^TzKCI!<{o!`udTORG*OP^V?eBu8V-5}c1 z*Zg(Cj#@QO3h*OOIt1_&NbmATTatEfZwo{yf2(m>6wx}nsHL%nZI9M;pRAG6_V}?G z@pwV>t6Nvh5NhN2Yr`H%f|R_r>rU{V(RgM~d6%~I59i&1cN0NRg7=gZcr{Odci!Bi zRNpy&@5##_qbnY(_?MgCFz{+m*ISP*BLk*omwbOTX9sbgYFw>ZmDbLVSonHm^Yco1 zig`f<-FD2zZqJBj@IIv!aYtL30T3z)05Jvt>i!UM0f0aS02Z+TXk-JxkIQYcJhOj; z8HaWV0DzV2;G!9Q6S22HD1g_u$6Nb*;)C3-dH|${Pe4e3h&4X&qPM?@jlaK7d-+WG z{$qdCqA#>d%*F)2>#})H1@P~?IcQS?G>3m$!y-hQpO)C6{Wm#i zIx*mY3GcTA&bI&c0KjOE{Io>$0Nqau#f1H75Se~C;}nIQL2Cv86dC|P=>(z1K0ZR= z2o;orG6~g903dn*QL2Mnfan244-Vo0+EhUFU_T6?{U$^Y4&VTy2M|3thy#co{Ilsn z+hsEQ#e)yc@YQK*PCAvy{7XMn_^lsG{t_eGev6UWzr{%IUt%Qow-{;qTa1L90cgzt zfIQr>_{h*_vZ|Z^v|LG*26~q7nmVDF#rGn diff --git a/ConveyerFilter.gd b/ConveyerFilter.gd new file mode 100644 index 0000000..eb6d087 --- /dev/null +++ b/ConveyerFilter.gd @@ -0,0 +1,42 @@ +extends Node2D + +var selected +var events = [] +var destination +var conveyer +var dragging +var sendingEnd = false +var can_send = false +var started = false + +func setup(conveyer) -> void: + self.conveyer = conveyer + self.can_send = false + self.sendingEnd = false + self.started = false + self.events = [] + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + if self.can_send and not self.started and self.destination != null: + self.send_event() + pass + +func create_conveyor(): + conveyer.set_point_position(0, selected.get_position()) + conveyer.set_point_position(1, destination) + +func send_event(): + print("sending events!") + self.started = true + for n in events.size(): + events[n].sending = true + var tween = get_tree().create_tween() + print("event sent ", n); + tween.tween_property(events[n], "position", destination, 2).set_trans(tween.TRANS_LINEAR) + await tween.finished diff --git a/Scenes/boxClick.tscn b/Scenes/boxClick.tscn index 21991f8..5c0d423 100644 --- a/Scenes/boxClick.tscn +++ b/Scenes/boxClick.tscn @@ -1,21 +1,27 @@ -[gd_scene load_steps=13 format=3 uid="uid://c8lin6dur1umi"] +[gd_scene load_steps=18 format=3 uid="uid://c8lin6dur1umi"] -[ext_resource type="Texture2D" uid="uid://crbbdu26tlg2k" path="res://2D Assets/background.png" id="1_fdm6s"] +[ext_resource type="Texture2D" uid="uid://c5hqlla5086kp" path="res://2D Assets/KNATIVE.png" id="1_tf1jf"] [ext_resource type="Texture2D" uid="uid://dlnjpu1sbekqf" path="res://2D Assets/conveyer texture.png" id="2_ocbiy"] [ext_resource type="Script" path="res://Scripts/conveyor.gd" id="3_5pogt"] [ext_resource type="PackedScene" uid="uid://whu4rwgsyl8u" path="res://Scenes/sink.tscn" id="4_2wh4q"] +[ext_resource type="Texture2D" uid="uid://dehcuwck0lv0e" path="res://2D Assets/sinks/redSink.png" id="5_16xat"] [ext_resource type="PackedScene" uid="uid://p2kk0a6bpmai" path="res://Scenes/event_box.tscn" id="6_gdfin"] +[ext_resource type="Texture2D" uid="uid://w1o1bf6t5054" path="res://2D Assets/sinks/greenSink.png" id="6_l1rfj"] [ext_resource type="PackedScene" uid="uid://cg1qlr4r42xs6" path="res://Scenes/box_b.tscn" id="7_j7uju"] +[ext_resource type="Texture2D" uid="uid://bdn2dphqbqnhh" path="res://2D Assets/boxes/greenBox.png" id="9_37vjj"] [ext_resource type="Script" path="res://Scripts/event_button.gd" id="9_va8kg"] [ext_resource type="Script" path="res://Scripts/restart.gd" id="10_rwca5"] [ext_resource type="Texture2D" uid="uid://cs6prh1shv4bh" path="res://2D Assets/funnels/blueFunnel.png" id="10_w4xqm"] [ext_resource type="Script" path="res://Scripts/draggable_filter.gd" id="10_xwwl6"] [ext_resource type="Texture2D" uid="uid://bpkn0kgyf867u" path="res://2D Assets/funnels/redFunnel.png" id="11_2hn41"] +[ext_resource type="AudioStream" uid="uid://8si5vt7ptv0k" path="res://SoundEffects/sfx_click_start.mp3" id="11_vi78o"] +[ext_resource type="Texture2D" uid="uid://dreyprum5m05y" path="res://2D Assets/funnels/greenFunnel.png" id="16_ucfe2"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_e8kq8"] size = Vector2(160, 185) [node name="base" type="Node2D"] +position = Vector2(3, 1) scale = Vector2(0.6, 0.6) [node name="Panel" type="Panel" parent="."] @@ -26,7 +32,8 @@ mouse_filter = 2 layout_mode = 0 offset_right = 1920.0 offset_bottom = 1080.0 -texture = ExtResource("1_fdm6s") +scale = Vector2(1.03659, 0.994286) +texture = ExtResource("1_tf1jf") [node name="Conveyor" type="Line2D" parent="."] texture_repeat = 2 @@ -36,14 +43,104 @@ texture = ExtResource("2_ocbiy") texture_mode = 1 script = ExtResource("3_5pogt") -[node name="Sink" parent="." instance=ExtResource("4_2wh4q")] +[node name="Conveyor2" type="Line2D" parent="."] +texture_repeat = 2 +points = PackedVector2Array(0, 0, 0, 0) +width = 100.0 +texture = ExtResource("2_ocbiy") +texture_mode = 1 +script = ExtResource("3_5pogt") +conveyorIndex = 1 + +[node name="Conveyor3" type="Line2D" parent="."] +texture_repeat = 2 +points = PackedVector2Array(0, 0, 0, 0) +width = 100.0 +texture = ExtResource("2_ocbiy") +texture_mode = 1 +script = ExtResource("3_5pogt") +conveyorIndex = 1 + +[node name="Sink 1" parent="." instance=ExtResource("4_2wh4q")] +position = Vector2(301.667, 851.667) +texture = ExtResource("5_16xat") +expectedType = "Red" + +[node name="RichTextLabel" type="RichTextLabel" parent="Sink 1"] +offset_left = -135.0 +offset_top = 88.0 +offset_right = -74.0 +offset_bottom = 106.0 +scale = Vector2(5.36905, 4.76596) +text = "SINK 1" +fit_content = true +scroll_active = false + +[node name="Sink2" parent="." instance=ExtResource("4_2wh4q")] +position = Vector2(781.667, 855) expectedType = "Blue" +[node name="RichTextLabel" type="RichTextLabel" parent="Sink2"] +offset_left = -135.0 +offset_top = 88.0 +offset_right = -74.0 +offset_bottom = 106.0 +scale = Vector2(5.36905, 4.76596) +text = "SINK 2" +fit_content = true +scroll_active = false + +[node name="Sink 3" parent="." instance=ExtResource("4_2wh4q")] +position = Vector2(1266.67, 855) +texture = ExtResource("6_l1rfj") +expectedType = "Green" + +[node name="RichTextLabel" type="RichTextLabel" parent="Sink 3"] +offset_left = -135.0 +offset_top = 88.0 +offset_right = -74.0 +offset_bottom = 106.0 +scale = Vector2(5.36905, 4.76596) +text = "SINK 3" +fit_content = true +scroll_active = false + [node name="BoxA" parent="." instance=ExtResource("6_gdfin")] +position = Vector2(786.167, 120.667) [node name="BoxB" parent="." instance=ExtResource("7_j7uju")] +position = Vector2(791.167, 124) +boxType = "Blue" + +[node name="BoxC" parent="." instance=ExtResource("7_j7uju")] +position = Vector2(785, 121.667) +texture = ExtResource("9_37vjj") +boxType = "Green" + +[node name="BoxA2" parent="." instance=ExtResource("6_gdfin")] +position = Vector2(784.5, 129) + +[node name="BoxB2" parent="." instance=ExtResource("7_j7uju")] +position = Vector2(782.833, 127.333) +boxType = "Blue" + +[node name="BoxC2" parent="." instance=ExtResource("7_j7uju")] +position = Vector2(791.667, 125) +texture = ExtResource("9_37vjj") +boxType = "Green" + +[node name="BoxA3" parent="." instance=ExtResource("6_gdfin")] +position = Vector2(786.167, 120.667) + +[node name="BoxB3" parent="." instance=ExtResource("7_j7uju")] +position = Vector2(791.167, 124) boxType = "Blue" +[node name="BoxC3" parent="." instance=ExtResource("7_j7uju")] +position = Vector2(791.667, 126.667) +texture = ExtResource("9_37vjj") +boxType = "Green" + [node name="Control" type="Control" parent="."] layout_mode = 3 anchors_preset = 0 @@ -68,6 +165,10 @@ theme_override_font_sizes/normal_font_size = 50 bbcode_enabled = true text = "[center]START" +[node name="SfxClickStart" type="AudioStreamPlayer2D" parent="Control"] +position = Vector2(154.997, 58.3331) +stream = ExtResource("11_vi78o") + [node name="Control2" type="Control" parent="."] layout_mode = 3 anchors_preset = 0 @@ -92,32 +193,43 @@ theme_override_font_sizes/normal_font_size = 50 bbcode_enabled = true text = "[center]RESTART" +[node name="SfxClickStart" type="AudioStreamPlayer2D" parent="Control2"] +position = Vector2(154.997, 58.3331) +stream = ExtResource("11_vi78o") + [node name="Draggable Filter" type="Area2D" parent="."] -position = Vector2(288.333, 205) +position = Vector2(1728.33, 121.667) script = ExtResource("10_xwwl6") filterColor = "Blue" [node name="CollisionShape2D" type="CollisionShape2D" parent="Draggable Filter"] -position = Vector2(0.333374, -0.5) shape = SubResource("RectangleShape2D_e8kq8") [node name="Sprite2D" type="Sprite2D" parent="Draggable Filter"] -position = Vector2(0.333374, 0.333313) texture = ExtResource("10_w4xqm") [node name="Draggable Filter2" type="Area2D" parent="."] -position = Vector2(286.667, 431.667) +position = Vector2(1735, 335) script = ExtResource("10_xwwl6") filterColor = "Red" [node name="CollisionShape2D" type="CollisionShape2D" parent="Draggable Filter2"] -position = Vector2(0.333374, -0.5) shape = SubResource("RectangleShape2D_e8kq8") [node name="Sprite2D" type="Sprite2D" parent="Draggable Filter2"] -position = Vector2(0.333374, 0.333313) texture = ExtResource("11_2hn41") +[node name="Draggable Filter3" type="Area2D" parent="."] +position = Vector2(1736.67, 545) +script = ExtResource("10_xwwl6") +filterColor = "Green" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Draggable Filter3"] +shape = SubResource("RectangleShape2D_e8kq8") + +[node name="Sprite2D" type="Sprite2D" parent="Draggable Filter3"] +texture = ExtResource("16_ucfe2") + [connection signal="pressed" from="Control/Button" to="Control" method="_on_button_pressed"] [connection signal="pressed" from="Control2/Button" to="Control2" method="_on_button_pressed"] [connection signal="area_entered" from="Draggable Filter" to="Draggable Filter" method="_on_area_entered"] @@ -128,3 +240,7 @@ texture = ExtResource("11_2hn41") [connection signal="body_shape_exited" from="Draggable Filter2" to="Draggable Filter2" method="_on_body_shape_exited"] [connection signal="mouse_entered" from="Draggable Filter2" to="Draggable Filter2" method="_on_mouse_entered"] [connection signal="mouse_exited" from="Draggable Filter2" to="Draggable Filter2" method="_on_mouse_exited"] +[connection signal="area_entered" from="Draggable Filter3" to="Draggable Filter3" method="_on_area_entered"] +[connection signal="body_shape_exited" from="Draggable Filter3" to="Draggable Filter3" method="_on_body_shape_exited"] +[connection signal="mouse_entered" from="Draggable Filter3" to="Draggable Filter3" method="_on_mouse_entered"] +[connection signal="mouse_exited" from="Draggable Filter3" to="Draggable Filter3" method="_on_mouse_exited"] diff --git a/Scenes/node_2d.gd b/Scenes/node_2d.gd new file mode 100644 index 0000000..e251cf8 --- /dev/null +++ b/Scenes/node_2d.gd @@ -0,0 +1 @@ +extends Node2D diff --git a/Scripts/ConveyerController.gd b/Scripts/ConveyerController.gd index 32a65a0..6de1725 100644 --- a/Scripts/ConveyerController.gd +++ b/Scripts/ConveyerController.gd @@ -2,15 +2,16 @@ extends Node2D var selected var events = [] -var destination -var conveyer +var destination = [] +var conveyer = [] +var conveyerInd = 0 var dragging var sendingEnd = false var can_send = false var started = false func setup(conveyer) -> void: - self.conveyer = conveyer + self.conveyer.append(conveyer) self.can_send = false self.sendingEnd = false self.started = false @@ -20,22 +21,33 @@ func setup(conveyer) -> void: func _ready() -> void: pass # Replace with function body. - # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: if self.can_send and not self.started and self.destination != null: self.send_event() pass + func create_conveyor(): - conveyer.set_point_position(0, selected.get_position()) - conveyer.set_point_position(1, destination.get_position()) + conveyer[conveyerInd].set_point_position(0, selected.get_position()) + conveyer[conveyerInd].set_point_position(1, destination[conveyerInd]) + + conveyerInd+=1 + if(conveyerInd>conveyer.size()-1): conveyerInd = 0 + func send_event(): print("sending events!") self.started = true + var ind = 0 for n in events.size(): + if(ind==3): conveyerInd+=1 + if(ind==6): conveyerInd+=1 + if(conveyerInd>conveyer.size()-1): conveyerInd = 0 events[n].sending = true var tween = get_tree().create_tween() - tween.tween_property(events[n], "position", destination.get_position(), 2).set_trans(tween.TRANS_LINEAR) + print("event sent ", n); + tween.tween_property(events[n], "position", destination[conveyerInd], 2).set_trans(tween.TRANS_LINEAR) await tween.finished + #$SfxClickStart.play() + ind+=1 diff --git a/Scripts/SinkClick.gd b/Scripts/SinkClick.gd index 4120687..1da0618 100644 --- a/Scripts/SinkClick.gd +++ b/Scripts/SinkClick.gd @@ -8,7 +8,7 @@ func _input_event(viewport, event, shape_idx): func on_click(): print("hey") - ConveyerController.destination = get_parent() + ConveyerController.destination.append(get_parent().get_position()) transfer_box() func transfer_box(): @@ -21,6 +21,7 @@ func _on_body_entered(node: Node2D) -> void: func _on_area_entered(area: Area2D) -> void: print("area entered") + #$SfxClickStart.play() #if area.is_in_group("Box"): #if area.get_parent().boxType != filterColor and area.get_parent().sending == true: #print("kill it") diff --git a/Scripts/conveyor.gd b/Scripts/conveyor.gd index 217557e..e50bd65 100644 --- a/Scripts/conveyor.gd +++ b/Scripts/conveyor.gd @@ -1,8 +1,8 @@ extends Line2D - +@export var conveyorIndex: int # Called when the node enters the scene tree for the first time. func _ready() -> void: - print("conveyor ready") + print("conveyor ready", conveyorIndex) ConveyerController.setup(self) diff --git a/Scripts/draggable_filter.gd b/Scripts/draggable_filter.gd index 5bd0f6f..e8a718b 100644 --- a/Scripts/draggable_filter.gd +++ b/Scripts/draggable_filter.gd @@ -6,9 +6,21 @@ var bodyref # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. - - + pass + +#func _input_event(viewport, event, shape_idx): + #if event.is_pressed() and ConveyerController.selected != null: + #self.on_click() +# +#func on_click(): + #print("hey filter") + #ConveyerController.destination = position + #transfer_box() +# +#func transfer_box(): + #print("sending") + #ConveyerController.create_conveyor() + # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: if draggable: @@ -32,8 +44,10 @@ func _on_mouse_exited() -> void: scale = Vector2(1, 1) +var events = [] func _on_area_entered(area: Area2D) -> void: if area.is_in_group("Box"): + events.append(area.get_parent()) if area.get_parent().boxType != filterColor and area.get_parent().sending == true: print("kill it") area.get_parent().queue_free() diff --git a/Scripts/event_button.gd b/Scripts/event_button.gd index e9fd197..e36e2e5 100644 --- a/Scripts/event_button.gd +++ b/Scripts/event_button.gd @@ -1,6 +1,5 @@ extends Control - # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. @@ -12,4 +11,6 @@ func _process(delta: float) -> void: func _on_button_pressed() -> void: + print("Start Button Pressed") + $SfxClickStart.play() ConveyerController.can_send = true diff --git a/Scripts/restart.gd b/Scripts/restart.gd index f30f74e..1413d02 100644 --- a/Scripts/restart.gd +++ b/Scripts/restart.gd @@ -12,4 +12,5 @@ func _process(delta: float) -> void: func _on_button_pressed() -> void: print("restart clicked") + $SfxClickStart.play() get_tree().reload_current_scene() diff --git a/Scripts/sink.gd b/Scripts/sink.gd index 4939319..7a085e8 100644 --- a/Scripts/sink.gd +++ b/Scripts/sink.gd @@ -1,12 +1,12 @@ extends Sprite2D @export var expectedType: String - +#@export var sinkIndex: int # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. - + #ConveyerController.conveyer.append(self) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: diff --git a/SoundEffects/music.mp3.import b/SoundEffects/music.mp3.import new file mode 100644 index 0000000..03ef3a4 --- /dev/null +++ b/SoundEffects/music.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://h4fgt6foxbje" +path="res://.godot/imported/music.mp3-46a78da060ffb05d4d66e1145443a004.mp3str" + +[deps] + +source_file="res://SoundEffects/music.mp3" +dest_files=["res://.godot/imported/music.mp3-46a78da060ffb05d4d66e1145443a004.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/SoundEffects/sfx_click_start.mp3 b/SoundEffects/sfx_click_start.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0e33689107fe77a5fa9ac5a264377b264d5cec9f GIT binary patch literal 16846 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 Date: Fri, 14 Feb 2025 23:31:02 +0530 Subject: [PATCH 2/2] Create README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..71d9c9b --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Knative Educational Venting Game +This project is a fork of the [Knative]([https://youtu.be/Dn6qFXBi1wc?si=WHQbPkcfeDBLlcP5](https://github.com/knative-extensions/educational-game)). This version includes enhanced functionality for multi-sink venting, allowing events to be directed to multiple sinks based on their color. + +### Video Demonstration + + + Watch the video + + + +## Features +- **Conveyor Belt System**: Events move along a conveyor belt. +- **Color Filters**: Filters allow events to pass through based on their color. +- **Multi-Sink Venting**: Events can now be directed to multiple sinks based on their color, enhancing the gameplay experience. +- **Interactive UI**: Players can drag filters and click buttons to control the flow of events.