From 166e8d2e78299a78c77b2f1a76d34583a08389f0 Mon Sep 17 00:00:00 2001 From: Tusharjamdade Date: Sun, 1 Feb 2026 04:14:20 +0000 Subject: [PATCH] ci: add automated linting and formatting with pre-commit --- .gdlintrc | 10 ++++++++ .pre-commit-config.yaml | 13 ++++++++++ Scripts/ConveyerController.gd | 21 ++++++++++----- Scripts/SinkClick.gd | 10 ++++++-- Scripts/both_blockage.gd | 14 +++++----- Scripts/broker.gd | 5 ++-- Scripts/conveyor.gd | 1 - Scripts/dlqPattern.gd | 47 +++++++++++++++++++--------------- Scripts/draggable_filter.gd | 4 ++- Scripts/event_box.gd | 5 +++- Scripts/event_box_clickable.gd | 2 ++ Scripts/event_button.gd | 2 +- Scripts/level.gd | 46 +++++++++++++++++---------------- Scripts/message_display.gd | 6 +++-- Scripts/multi_sink.gd | 24 +++++++++-------- Scripts/restart.gd | 5 ++-- Scripts/sink.gd | 2 +- 17 files changed, 138 insertions(+), 79 deletions(-) create mode 100644 .gdlintrc create mode 100644 .pre-commit-config.yaml diff --git a/.gdlintrc b/.gdlintrc new file mode 100644 index 0000000..287feaf --- /dev/null +++ b/.gdlintrc @@ -0,0 +1,10 @@ +max-line-length: 120 +disable: + - class-variable-name + - function-variable-name + - function-argument-name + - unused-argument + - load-constant-name + - class-definitions-order + - unnecessary-pass + - expression-not-assigned \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..3cdbabe --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,13 @@ +repos: + - repo: https://github.com/Scony/godot-gdscript-toolkit + rev: 4.2.2 + hooks: + # 1. gdformat: Automatically fixes spacing, indentation, and line breaks + - id: gdformat + files: \.gd$ + additional_dependencies: [setuptools] + + # 2. gdlint: Checks for naming conventions and unused variables + - id: gdlint + files: \.gd$ + additional_dependencies: [setuptools] \ No newline at end of file diff --git a/Scripts/ConveyerController.gd b/Scripts/ConveyerController.gd index abec8da..347e4f4 100644 --- a/Scripts/ConveyerController.gd +++ b/Scripts/ConveyerController.gd @@ -4,12 +4,13 @@ var selected var events = [] var destination = [] var conveyer = [] -var conveyerInd=0 +var conveyerInd = 0 var dragging var sendingEnd = false var can_send = false var started = false + func initialise(): self.selected self.events = [] @@ -21,6 +22,7 @@ func initialise(): self.can_send = false self.started = false + func setup(conveyer) -> void: self.conveyer.append(conveyer) self.can_send = false @@ -28,9 +30,10 @@ func setup(conveyer) -> void: 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. + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -39,19 +42,23 @@ func _process(delta: float) -> void: self.send_event() pass + func create_conveyor(): conveyer[conveyerInd].set_point_position(0, selected.get_position()) conveyer[conveyerInd].set_point_position(1, destination[conveyerInd]) - conveyerInd+=1 - + conveyerInd += 1 + + func send_event(): print("sending events!") self.started = true - if conveyerInd!=0: + if conveyerInd != 0: for n in events.size(): events[n].sending = true var tween = get_tree().create_tween() - tween.tween_property(events[n], "position", destination[n%conveyerInd], 2).set_trans(tween.TRANS_LINEAR) - if n%conveyerInd==conveyerInd-1: + tween.tween_property(events[n], "position", destination[n % conveyerInd], 2).set_trans( + tween.TRANS_LINEAR + ) + if n % conveyerInd == conveyerInd - 1: await tween.finished Level.next_level() diff --git a/Scripts/SinkClick.gd b/Scripts/SinkClick.gd index 6e5204a..adf1739 100644 --- a/Scripts/SinkClick.gd +++ b/Scripts/SinkClick.gd @@ -1,27 +1,33 @@ extends Area2D + + # Called when the node enters the scene tree for the first time. func _input_event(viewport, event, shape_idx): if event.is_pressed() and ConveyerController.selected != null: self.on_click() + func on_click(): print("hey") ConveyerController.destination.append(get_parent().get_position()) transfer_box() + func transfer_box(): print("sending") ConveyerController.create_conveyor() #draw_line(ConveyerController.selected.get_global_position(), get_global_position(), Color.GREEN) + func _on_body_entered(node: Node2D) -> void: print("body entered") + func _on_area_entered(area: Area2D) -> void: print("area entered") if area.is_in_group("Box"): - Level.sinkUsed=true + Level.sinkUsed = true print(get_parent().expectedType) if area.get_parent().boxType != get_parent().expectedType: print("Not Expected Box") - Level.sinkBoxMatchPresent=false + Level.sinkBoxMatchPresent = false diff --git a/Scripts/both_blockage.gd b/Scripts/both_blockage.gd index 827edf4..a13f579 100644 --- a/Scripts/both_blockage.gd +++ b/Scripts/both_blockage.gd @@ -1,23 +1,25 @@ extends Node2D -var consumed +var consumed + + # Called when the node enters the scene tree for the first time. func _ready(): - consumed = false# Replace with function body. + consumed = false # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): pass - + + func _on_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void: if event is InputEventMouseButton and event.pressed and event.button_index == 1: print("clicked on right blockage") - func _on_area_2d_area_entered(area): - if( consumed == false): - $AnimationPlayer.play("crush") + if consumed == false: + $AnimationPlayer.play("crush") consumed = true # Replace with function body. diff --git a/Scripts/broker.gd b/Scripts/broker.gd index 0015fad..2456772 100644 --- a/Scripts/broker.gd +++ b/Scripts/broker.gd @@ -1,18 +1,19 @@ extends Sprite2D - const event_script = preload("res://Scripts/event_box.gd") + # Called when the node enters the scene tree for the first time. func _ready() -> void: create_event("") - pass # Replace with function body. + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass + func create_event(color: String) -> void: var event = Sprite2D.new() event.texture = load("res://2D Assets/boxes/redBox.png") diff --git a/Scripts/conveyor.gd b/Scripts/conveyor.gd index 217557e..1b4dc2c 100644 --- a/Scripts/conveyor.gd +++ b/Scripts/conveyor.gd @@ -5,4 +5,3 @@ extends Line2D func _ready() -> void: print("conveyor ready") ConveyerController.setup(self) - diff --git a/Scripts/dlqPattern.gd b/Scripts/dlqPattern.gd index 5d32aff..23f2866 100644 --- a/Scripts/dlqPattern.gd +++ b/Scripts/dlqPattern.gd @@ -1,27 +1,30 @@ extends Node2D -@onready var DLS=$dls -@onready var blockagepoint= $Blockage +@onready var DLS = $dls +@onready var blockagepoint = $Blockage var dlsclicked = false + func _ready() -> void: - ConveyerController.can_send = false + ConveyerController.can_send = false pass - + + func _process(delta: float) -> void: pass - + + func _on_blockage_left_area_entered(area: Area2D) -> void: pass + + #when DLS is clicked func _on_dls_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void: - - if event is InputEventMouseButton and event.pressed and event.button_index == 1: - dlsclicked=true + dlsclicked = true #ConveyerController.conveyerInd+=1 - var dlqTrigger=$dlsconveyor - dlqTrigger.set_point_position(0, Vector2(529,250)) - dlqTrigger.set_point_position(1, DLS.position+Vector2(80,0)) + var dlqTrigger = $dlsconveyor + dlqTrigger.set_point_position(0, Vector2(529, 250)) + dlqTrigger.set_point_position(1, DLS.position + Vector2(80, 0)) func _on_dls_area_entered(area: Area2D) -> void: @@ -29,28 +32,32 @@ func _on_dls_area_entered(area: Area2D) -> void: print("box in DLS") Level.dlsUsed = true + #when event get in the blockage area func _on_area_2d_area_entered(area): - ConveyerController.can_send=false + ConveyerController.can_send = false var blockedEvents = ConveyerController.events.duplicate() if dlsclicked: - for event in blockedEvents: if event == null or not event.is_inside_tree(): continue # skip already deleted or invalid nodes - - event.sending = true + + event.sending = true var tween = get_tree().create_tween() - tween.tween_property(event, "position", DLS.position+Vector2(80,0), 2).set_trans(Tween.TRANS_LINEAR) + tween.tween_property(event, "position", DLS.position + Vector2(80, 0), 2).set_trans( + Tween.TRANS_LINEAR + ) await tween.finished else: for event in blockedEvents: if event == null or not event.is_inside_tree(): continue # skip already deleted or invalid nodes - - event.sending = true + + event.sending = true var tween = get_tree().create_tween() - tween.tween_property(event, "position", blockagepoint.position, 2).set_trans(Tween.TRANS_LINEAR) + tween.tween_property(event, "position", blockagepoint.position, 2).set_trans( + Tween.TRANS_LINEAR + ) await tween.finished - # Replace with function body. + # Replace with function body. diff --git a/Scripts/draggable_filter.gd b/Scripts/draggable_filter.gd index c0d8bd3..5b855cc 100644 --- a/Scripts/draggable_filter.gd +++ b/Scripts/draggable_filter.gd @@ -4,9 +4,10 @@ var draggable = false var bodyref @export var filterColor: String + # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -20,6 +21,7 @@ func _process(delta: float) -> void: ConveyerController.dragging = false global_position = get_global_mouse_position() + func _on_mouse_entered() -> void: if not ConveyerController.dragging: draggable = true diff --git a/Scripts/event_box.gd b/Scripts/event_box.gd index 94c0f0a..ec9f470 100644 --- a/Scripts/event_box.gd +++ b/Scripts/event_box.gd @@ -3,16 +3,19 @@ extends Sprite2D @export var boxType: String @export var sending = false + func _ready() -> void: print("event ready") print("event is color", boxType) ConveyerController.events.append(self) + func _input_event(viewport, event, shape_idx) -> void: print(event) if event.is_pressed(): self.on_click() - + + func on_click(): print("hi") ConveyerController.selected = self diff --git a/Scripts/event_box_clickable.gd b/Scripts/event_box_clickable.gd index 86639af..32461da 100644 --- a/Scripts/event_box_clickable.gd +++ b/Scripts/event_box_clickable.gd @@ -1,8 +1,10 @@ extends Area2D + func _ready() -> void: pass + func _input_event(viewport, event, shape_idx) -> void: if event.is_pressed(): get_parent().on_click() diff --git a/Scripts/event_button.gd b/Scripts/event_button.gd index 37fba59..78b3dec 100644 --- a/Scripts/event_button.gd +++ b/Scripts/event_button.gd @@ -3,7 +3,7 @@ extends Control # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/Scripts/level.gd b/Scripts/level.gd index 19b15b6..e1219d6 100644 --- a/Scripts/level.gd +++ b/Scripts/level.gd @@ -1,44 +1,46 @@ extends Node -var sinkBoxMatchNeeded=[false,true,true,false] +var sinkBoxMatchNeeded = [false, true, true, false] var sinkBoxMatchPresent var sinkUsed -var dlsRequired=[false,false,false,true] +var dlsRequired = [false, false, false, true] var dlsUsed -var totalbox=[2,2,3] +var totalbox = [2, 2, 3] var nextLevel -var levels=["basicEventFlow","boxClick","multiSink","dlqPattern"] -var levelind=0 +var levels = ["basicEventFlow", "boxClick", "multiSink", "dlqPattern"] +var levelind = 0 + func initialise(): - sinkBoxMatchPresent=true - sinkUsed=false - totalbox=0 - nextLevel=false - dlsUsed=false + sinkBoxMatchPresent = true + sinkUsed = false + totalbox = 0 + nextLevel = false + dlsUsed = false + -func next_level(): +func next_level(): if sinkUsed: if not sinkBoxMatchNeeded[levelind] and not dlsRequired[levelind]: - print("if next level entered",sinkBoxMatchNeeded,dlsRequired) - nextLevel=true + print("if next level entered", sinkBoxMatchNeeded, dlsRequired) + nextLevel = true elif sinkBoxMatchNeeded[levelind] and sinkBoxMatchPresent: - print("elif next level entered",sinkBoxMatchNeeded,sinkBoxMatchPresent) - nextLevel=true + print("elif next level entered", sinkBoxMatchNeeded, sinkBoxMatchPresent) + nextLevel = true elif dlsRequired[levelind] and dlsUsed: - print("elif dls",dlsUsed) - nextLevel=true - + print("elif dls", dlsUsed) + nextLevel = true + var message_display = preload("res://Scenes/message_display.tscn").instantiate() add_child(message_display) - message_display.z_index = 999 + message_display.z_index = 999 if nextLevel: print("success") message_display.show_message("Success") await message_display.show_message_for_duration(2.0) message_display.visible = false - levelind+=1 - if levelind!=levels.size(): - var next_level_path="res://Scenes/"+levels[levelind]+".tscn" + levelind += 1 + if levelind != levels.size(): + var next_level_path = "res://Scenes/" + levels[levelind] + ".tscn" get_tree().change_scene_to_file(next_level_path) ConveyerController.initialise() else: diff --git a/Scripts/message_display.gd b/Scripts/message_display.gd index 0692202..47243d9 100644 --- a/Scripts/message_display.gd +++ b/Scripts/message_display.gd @@ -1,9 +1,11 @@ extends Control + func show_message(text): print("Message displayed") - $Label.text=text - + $Label.text = text + + func show_message_for_duration(duration: float) -> void: var timer := Timer.new() timer.wait_time = duration diff --git a/Scripts/multi_sink.gd b/Scripts/multi_sink.gd index 9b40c0e..33522e8 100644 --- a/Scripts/multi_sink.gd +++ b/Scripts/multi_sink.gd @@ -1,24 +1,26 @@ extends Node2D + + func start1(): - var dest_size=ConveyerController.destination.size() - var Start=[dest_size*0,dest_size*1,dest_size*2] - var extra=dest_size-1 + var dest_size = ConveyerController.destination.size() + var Start = [dest_size * 0, dest_size * 1, dest_size * 2] + var extra = dest_size - 1 print(extra) - - var Boxes = [$BoxB,$BoxR,$BoxG] + + var Boxes = [$BoxB, $BoxR, $BoxG] for i in Boxes.size(): - print("i",i) + print("i", i) var packed = PackedScene.new() packed.pack(Boxes[i]) for m in extra: - print("m",m) + print("m", m) var clone = packed.instantiate() add_child(clone) - var box=ConveyerController.events.pop_back() + var box = ConveyerController.events.pop_back() print(box) - ConveyerController.events.insert(Start[i],box) - print("No of events: ",ConveyerController.events.size()) - ConveyerController.can_send= true + ConveyerController.events.insert(Start[i], box) + print("No of events: ", ConveyerController.events.size()) + ConveyerController.can_send = true func _on_button_pressed() -> void: diff --git a/Scripts/restart.gd b/Scripts/restart.gd index 9056d8e..2c84ec6 100644 --- a/Scripts/restart.gd +++ b/Scripts/restart.gd @@ -3,17 +3,18 @@ extends Control # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass + func _on_button_pressed() -> void: print("restart clicked") #if not Level.nextLevel: - #Level.levelind-=1 + #Level.levelind-=1 Level.initialise() get_tree().reload_current_scene() ConveyerController.initialise() diff --git a/Scripts/sink.gd b/Scripts/sink.gd index 4939319..e8f2bf6 100644 --- a/Scripts/sink.gd +++ b/Scripts/sink.gd @@ -5,7 +5,7 @@ extends Sprite2D # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame.