Skip to content

Commit f4831a9

Browse files
committed
refactor: remove cruft variables in ComparisonSort
The `active` and `done` variables were unnecessary and replaced with calls to `Node::set_process_input`.
1 parent 6e598bb commit f4831a9

File tree

5 files changed

+21
-25
lines changed

5 files changed

+21
-25
lines changed

levels/comparison_sort.gd

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ const EFFECTS = {
1313
const DISABLE_TIME = 1.0
1414

1515
var array: ArrayModel
16-
var active = true
17-
var done = false
1816
var moves = 0
1917

2018
var _timer = Timer.new()
@@ -28,10 +26,11 @@ func _init(array):
2826
self.connect("mistake", self, "_on_ComparisonSort_mistake")
2927
self.connect("done", self, "_on_ComparisonSort_done")
3028

29+
func _ready():
30+
set_process_input(false)
31+
3132
func _input(event):
3233
"""Pass input events for checking and take appropriate action."""
33-
if done or not active:
34-
return
3534
if event.is_pressed():
3635
moves += 1
3736
return next(event.as_text())
@@ -40,20 +39,14 @@ func next(action):
4039
"""Check the action and advance state or emit signal as needed."""
4140
push_error("NotImplementedError")
4241

43-
func get_effect(i):
44-
return get_effect(i)
45-
46-
func _get_effect(i):
47-
push_error("NotImplementedError")
48-
4942
func _on_ComparisonSort_done():
50-
done = true
43+
set_process_input(false)
5144

5245
func _on_ComparisonSort_mistake():
5346
"""Disable the controls for one second."""
54-
active = false
47+
set_process_input(false)
5548
_timer.start(DISABLE_TIME)
5649

5750
func _on_Timer_timeout():
5851
"""Reenable the controls."""
59-
active = true
52+
set_process_input(true)

scripts/levels.gd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ func _on_Button_focus_entered(size=_level.array.size):
7474
$Timer.start()
7575
set_process_input(true)
7676
_level = _get_level(get_focus_owner().text).new(ArrayModel.new(size))
77-
_level.active = false
7877
$Preview/InfoBorder/Info/About.text = _cleanup(_level.ABOUT)
7978
$Preview/InfoBorder/Info/Controls.text = _cleanup(_level.CONTROLS)
8079
# Start over when simulation is finished

scripts/menu.gd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ var _level = BogoSort.new(ArrayModel.new())
55
func _ready():
66
$Buttons/Start.grab_focus()
77
randomize()
8-
_level.active = false
98
$Display.add_child(ArrayView.new(_level))
109

1110
func _on_Start_pressed():

scripts/play.gd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ func _on_Timer_timeout():
1818
GlobalScene.get_param("size", ArrayModel.DEFAULT_SIZE)))
1919
level.connect("done", self, "_on_Level_done", [level])
2020
$Display.add_child(ArrayView.new(level))
21+
level.set_process_input(true)
2122

2223
func get_score():
2324
return stepify((OS.get_ticks_msec() - _start_time) / 1000.0, 0.001)

views/array_view.gd

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@ var _tween = Tween.new()
1414
var _level: ComparisonSort
1515
var _rects = []
1616
var _positions = []
17-
var _pointer = null
17+
var _pointer = Polygon2D.new()
1818
var _pointer_size: int
1919
onready var _separation = 128 / _level.array.size
2020

2121
func _init(level):
2222
_level = level
2323
add_child(_level) # NOTE: This is necessary for it to read input
2424
add_child(_tween) # NOTE: This is necessary for it to animate
25+
add_child(_pointer)
26+
_pointer.hide()
2527

2628
func _ready():
2729
yield(get_tree(), "idle_frame")
@@ -32,6 +34,7 @@ func _ready():
3234
var accumulated = 0
3335
var x = 0
3436
_level.connect("mistake", get_parent(), "flash")
37+
_level.connect("done", self, "_on_ComparisonSort_done")
3538
var width = unit_width - _separation
3639
var height = rect_size.y - _pointer_size * 2
3740
for i in range(_level.array.size):
@@ -53,28 +56,29 @@ func _ready():
5356
add_child(rect)
5457
_level.array.connect("swapped", self, "_on_ArrayModel_swapped")
5558
if _level.has_method("get_pointer"):
56-
_pointer = Polygon2D.new()
5759
_pointer.polygon = [
5860
Vector2(width / 2, _pointer_size),
5961
Vector2(width / 2 - _pointer_size, 0),
6062
Vector2(width / 2 + _pointer_size, 0),
6163
]
6264
_pointer.color = GlobalTheme.BLUE
63-
add_child(_pointer)
65+
_pointer.show()
6466

6567
func _process(delta):
66-
if _pointer != null:
68+
if _pointer.visible:
6769
var pointed = _level.get_pointer()
6870
var height = rect_size.y - _pointer_size * 2
6971
_pointer.position = Vector2(_rects[pointed].position.x,
7072
height - _level.array.frac(pointed) * height)
71-
if _level.done:
72-
_pointer.queue_free()
7373
for i in range(_rects.size()):
74-
if _level.done:
75-
_rects[i].color = ComparisonSort.EFFECTS.NONE
76-
else:
77-
_rects[i].color = _level.get_effect(i)
74+
_rects[i].color = _level.get_effect(i)
75+
_rects[i].scale.y = -_level.array.frac(i)
76+
77+
func _on_ComparisonSort_done():
78+
set_process(false)
79+
_pointer.hide()
80+
for i in range(_rects.size()):
81+
_rects[i].color = ComparisonSort.EFFECTS.NONE
7882
_rects[i].scale.y = -_level.array.frac(i)
7983

8084
func _on_ArrayModel_swapped(i, j):

0 commit comments

Comments
 (0)