worked on on-task-tracker

This commit is contained in:
Jaap Marsman 2022-10-21 17:42:42 +08:00
parent d6c70ae4c7
commit 6dd44f49af
41 changed files with 5811 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/classroom-1910012.jpg-d303ce9e9ef43fc0c4085a3a10b385d6.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/classroom-1910012.jpg"
dest_files=[ "res://.import/classroom-1910012.jpg-d303ce9e9ef43fc0c4085a3a10b385d6.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/classroom-2093744.jpg-06593ce994efcf68921eab72e077fcfc.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/classroom-2093744.jpg"
dest_files=[ "res://.import/classroom-2093744.jpg-06593ce994efcf68921eab72e077fcfc.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/classroom-2093744_1920.jpg-0e9d05a92d8ea80eb95a41a239a2532a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/classroom-2093744_1920.jpg"
dest_files=[ "res://.import/classroom-2093744_1920.jpg-0e9d05a92d8ea80eb95a41a239a2532a.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/classroom-824120.jpg-e1a8e94b46a7cbca07df33cbcd8d63b0.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/classroom-824120.jpg"
dest_files=[ "res://.import/classroom-824120.jpg-e1a8e94b46a7cbca07df33cbcd8d63b0.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/classroom-824120_1920.jpg-635aafab1fa0bc90faec67432d053aaf.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/classroom-824120_1920.jpg"
dest_files=[ "res://.import/classroom-824120_1920.jpg-635aafab1fa0bc90faec67432d053aaf.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/school-1974369.jpg-80c0553f05d678f194af718b8f52fc24.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/school-1974369.jpg"
dest_files=[ "res://.import/school-1974369.jpg-80c0553f05d678f194af718b8f52fc24.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/tablet-1910018.jpg-ab340330442efeaf50aa39250b39b5ab.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/photos/tablet-1910018.jpg"
dest_files=[ "res://.import/tablet-1910018.jpg-ab340330442efeaf50aa39250b39b5ab.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@ -0,0 +1,8 @@
extends Node
# Declare member variables here. Examples:
# var a: int = 2
# var b: String = "text"
var observation_minutes : int = 15

View File

@ -0,0 +1,42 @@
extends CanvasLayer
# Declare member variables here. Examples:
# var a: int = 2
# var b: String = "text"
var date_time
var check_time_var : int
onready var date_time_display = $"%CurrentTime"
onready var global_ints = $"/root/GlobalInts"
onready var minute_label = $"StartScreen/InstructionPanel/MinuteBox/MinuteLabel"
# Called when the node enters the scene tree for the first time.
func _ready():
minute_label.text = str(global_ints.observation_minutes)
func _process(_delta):
check_time_var += 1
#print(check_time_var)
if check_time_var == 10:
check_time_var = 0
date_time = OS.get_time()
date_time_display.text = str(date_time.hour, ":", date_time.minute)
func _on_MinuteMinus_pressed() -> void:
if global_ints.observation_minutes >= 2:
global_ints.observation_minutes -= 1
minute_label.text = str(global_ints.observation_minutes)
func _on_MinutePlus_pressed() -> void:
if global_ints.observation_minutes < 60:
global_ints.observation_minutes += 1
minute_label.text = str(global_ints.observation_minutes)
func _on_Manual_pressed() -> void:
var _error = OS.shell_open("https://www.internationalsengroup.org/resources/time-sampling-form/")

View File

@ -1,18 +1,428 @@
[gd_scene load_steps=2 format=2] [gd_scene load_steps=11 format=2]
[ext_resource path="res://wb_theme.tres" type="Theme" id=1] [ext_resource path="res://wb_theme.tres" type="Theme" id=1]
[ext_resource path="res://main_screen.gd" type="Script" id=2]
[ext_resource path="res://Assets/photos/classroom-824120_1920.jpg" type="Texture" id=3]
[ext_resource path="res://Assets/fonts/noto_sans_display.ttf" type="DynamicFontData" id=5]
[ext_resource path="res://Assets/fonts/NotoSansDisplay-Bold.ttf" type="DynamicFontData" id=6]
[sub_resource type="StyleBoxFlat" id=2]
bg_color = Color( 0.952941, 0.933333, 0.847059, 1 )
[sub_resource type="StyleBoxFlat" id=1]
bg_color = Color( 1, 1, 1, 1 )
corner_radius_top_left = 50
corner_radius_top_right = 50
shadow_offset = Vector2( 0, 4 )
[sub_resource type="DynamicFont" id=4]
font_data = ExtResource( 5 )
[sub_resource type="DynamicFont" id=5]
size = 24
font_data = ExtResource( 6 )
[sub_resource type="DynamicFont" id=6]
size = 32
font_data = ExtResource( 6 )
[node name="AppWindow" type="CanvasLayer"] [node name="AppWindow" type="CanvasLayer"]
script = ExtResource( 2 )
[node name="Background" type="Panel" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
theme = ExtResource( 1 )
custom_styles/panel = SubResource( 2 )
__meta__ = {
"_edit_lock_": true
}
[node name="ClassroomPhoto" type="Sprite" parent="."]
position = Vector2( 640, 204 )
scale = Vector2( 0.67, 0.67 )
texture = ExtResource( 3 )
__meta__ = {
"_edit_lock_": true
}
[node name="StartScreen" type="CanvasLayer" parent="."] [node name="StartScreen" type="CanvasLayer" parent="."]
[node name="Panel" type="Panel" parent="StartScreen"] [node name="InstructionPanel" type="Panel" parent="StartScreen"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -640.0
margin_top = -171.0
margin_right = 640.0
margin_bottom = 359.0
custom_styles/panel = SubResource( 1 )
__meta__ = {
"_edit_lock_": true
}
[node name="MinuteBox" type="HBoxContainer" parent="StartScreen/InstructionPanel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -53.5
margin_top = -159.0
margin_right = 53.5
margin_bottom = -119.0
[node name="MinuteMinus" type="Button" parent="StartScreen/InstructionPanel/MinuteBox"]
margin_right = 43.0
margin_bottom = 40.0
size_flags_horizontal = 3
theme = ExtResource( 1 )
text = "-"
__meta__ = {
"_edit_lock_": true
}
[node name="MinuteLabel" type="Label" parent="StartScreen/InstructionPanel/MinuteBox"]
margin_left = 47.0
margin_top = 3.0
margin_right = 60.0
margin_bottom = 37.0
theme = ExtResource( 1 )
text = "1"
__meta__ = {
"_edit_lock_": true
}
[node name="MinutePlus" type="Button" parent="StartScreen/InstructionPanel/MinuteBox"]
margin_left = 64.0
margin_right = 107.0
margin_bottom = 40.0
size_flags_horizontal = 3
theme = ExtResource( 1 )
text = "+"
__meta__ = {
"_edit_lock_": true
}
[node name="CurrentTime" type="Label" parent="StartScreen/InstructionPanel"]
unique_name_in_owner = true
margin_left = 1200.0
margin_top = 510.0
margin_right = 1279.0
margin_bottom = 533.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_fonts/font = SubResource( 4 )
text = "99:99"
align = 2
[node name="MinuteExplanation" type="Label" parent="StartScreen/InstructionPanel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -322.5
margin_top = -197.0
margin_right = 322.5
margin_bottom = -163.0
theme = ExtResource( 1 )
text = "How long is your observation? (in minutes)"
align = 1
[node name="ObservationItemsTitle" type="Label" parent="StartScreen/InstructionPanel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -102.5
margin_top = -97.0
margin_right = 102.5
margin_bottom = -63.0
theme = ExtResource( 1 )
custom_fonts/font = SubResource( 5 )
text = "Observation Items"
[node name="Title" type="Label" parent="StartScreen/InstructionPanel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -172.5
margin_top = -250.0
margin_right = 172.5
margin_bottom = -200.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_fonts/font = SubResource( 6 )
text = "Time Sampling Form"
align = 1
[node name="BottomButtons" type="HBoxContainer" parent="StartScreen/InstructionPanel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -500.0
margin_top = 180.0
margin_right = 500.0
margin_bottom = 240.0
[node name="Manual" type="Button" parent="StartScreen/InstructionPanel/BottomButtons"]
margin_right = 247.0
margin_bottom = 60.0
size_flags_horizontal = 3
theme = ExtResource( 1 )
text = "Manual"
[node name="ChangeItems" type="Button" parent="StartScreen/InstructionPanel/BottomButtons"]
margin_left = 251.0
margin_right = 498.0
margin_bottom = 60.0
size_flags_horizontal = 3
theme = ExtResource( 1 )
text = "Change Items"
[node name="PupilName" type="Button" parent="StartScreen/InstructionPanel/BottomButtons"]
margin_left = 502.0
margin_right = 749.0
margin_bottom = 60.0
size_flags_horizontal = 3
theme = ExtResource( 1 )
text = "Pupil Name"
[node name="Start" type="Button" parent="StartScreen/InstructionPanel/BottomButtons"]
margin_left = 753.0
margin_right = 1000.0
margin_bottom = 60.0
size_flags_horizontal = 3
theme = ExtResource( 1 )
text = "Start"
[node name="GridObservations" type="GridContainer" parent="StartScreen/InstructionPanel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -518.5
margin_top = -57.0
margin_right = 518.5
margin_bottom = 129.0
columns = 3
[node name="1Acronym" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_right = 45.0
margin_bottom = 34.0
theme = ExtResource( 1 )
text = "OnT"
__meta__ = {
"_edit_lock_": true
}
[node name="1Item" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 49.0
margin_right = 167.0
margin_bottom = 34.0
theme = ExtResource( 1 )
text = "On Task"
__meta__ = {
"_edit_lock_": true
}
[node name="1Explanation" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 171.0
margin_right = 1037.0
margin_bottom = 34.0
theme = ExtResource( 1 )
text = "The pupil is on task"
__meta__ = {
"_edit_lock_": true
}
[node name="2Acronym" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_top = 38.0
margin_right = 45.0
margin_bottom = 72.0
theme = ExtResource( 1 )
text = "Loo"
__meta__ = {
"_edit_lock_": true
}
[node name="2Item" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 49.0
margin_top = 38.0
margin_right = 167.0
margin_bottom = 72.0
theme = ExtResource( 1 )
text = "Looking"
__meta__ = {
"_edit_lock_": true
}
[node name="2Explanation" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 171.0
margin_top = 38.0
margin_right = 1037.0
margin_bottom = 72.0
theme = ExtResource( 1 )
text = " The pupil is looking around in a distracted manner or is staring into the distance"
__meta__ = {
"_edit_lock_": true
}
[node name="3Acronym" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_top = 76.0
margin_right = 45.0
margin_bottom = 110.0
theme = ExtResource( 1 )
text = "Dis"
__meta__ = {
"_edit_lock_": true
}
[node name="3Item" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 49.0
margin_top = 76.0
margin_right = 167.0
margin_bottom = 110.0
theme = ExtResource( 1 )
text = "Distracting"
__meta__ = {
"_edit_lock_": true
}
[node name="3Explanation" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 171.0
margin_top = 76.0
margin_right = 1037.0
margin_bottom = 110.0
theme = ExtResource( 1 )
text = "The pupil is distracting other pupils or talking to them"
__meta__ = {
"_edit_lock_": true
}
[node name="4Acronym" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_top = 114.0
margin_right = 45.0
margin_bottom = 148.0
theme = ExtResource( 1 )
text = "Wal"
__meta__ = {
"_edit_lock_": true
}
[node name="4Item" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 49.0
margin_top = 114.0
margin_right = 167.0
margin_bottom = 148.0
theme = ExtResource( 1 )
text = "Walking"
__meta__ = {
"_edit_lock_": true
}
[node name="4Explanation" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 171.0
margin_top = 114.0
margin_right = 1037.0
margin_bottom = 148.0
theme = ExtResource( 1 )
text = "The pupil is walking through the class"
__meta__ = {
"_edit_lock_": true
}
[node name="5Acronym" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_top = 152.0
margin_right = 45.0
margin_bottom = 186.0
theme = ExtResource( 1 )
text = "Oth"
__meta__ = {
"_edit_lock_": true
}
[node name="5Item" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 49.0
margin_top = 152.0
margin_right = 167.0
margin_bottom = 186.0
theme = ExtResource( 1 )
text = "Other"
__meta__ = {
"_edit_lock_": true
}
[node name="5Explanation" type="Label" parent="StartScreen/InstructionPanel/GridObservations"]
margin_left = 171.0
margin_top = 152.0
margin_right = 1037.0
margin_bottom = 186.0
theme = ExtResource( 1 )
text = "The pupil is otherwise distracted and not on task"
__meta__ = {
"_edit_lock_": true
}
[node name="ManualScreen" type="CanvasLayer" parent="."]
visible = false
[node name="Panel" type="Panel" parent="ManualScreen"]
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
theme = ExtResource( 1 ) theme = ExtResource( 1 )
[node name="ProcedureLabel" type="Label" parent="ManualScreen"]
margin_left = 84.0
margin_top = 76.0
margin_right = 472.0
margin_bottom = 90.0
text = "Procedure
The best way to do a time sampling observation is:
A. After the teacher has given the assignment where pupils are expected to work independently, or
individual help to the pupil has finished, the observation begins. The stopwatch is started. The observer
waits 20 seconds.
B. The observer notes what the pupil is doing right that second.
C. The observer circles the category that best describes what the pupil is doing at that time: OnT, Loo, Dis,
Wal, Oth.
D. The observer waits until the timer hits 40 and repeats step B and C.
E. The observer waits until the timer hits 60 and repeats step B and C.
F. This procedure is repeated for as long as the observation is set to last.
G. The observer does not score those moments where the teacher & pupil are interacting with each other."
[node name="GoalLabel" type="Label" parent="ManualScreen"]
margin_left = 84.0
margin_top = 76.0
margin_right = 472.0
margin_bottom = 90.0
text = "Instead of describing the “on task behaviour” of a pupil, the observer can instead use this form to sample and
quantify what it looks like.
The advantage is that this process objectifies and quantifies the observed behaviour. During a Time Sampling
observation, the observer - during a period of time where pupils are expected to work independently notes
down every 20 second what a pupil is doing. In this manner they score three times a minute. Afterwards the
observer can calculate percentages to see how “on task” the pupil was.
For pupils without an Additional Support Need, as a rough guideline, you would expect them to be
independently “on task” for the length of time equal to their age. So an eight year old pupil would be expected to
be able to remain “on task” for eight minutes."
[node name="ObservationWindow" type="CanvasLayer" parent="."] [node name="ObservationWindow" type="CanvasLayer" parent="."]
visible = false visible = false
[node name="Panel" type="Panel" parent="ObservationWindow"]
anchor_right = 1.0
anchor_bottom = 1.0
theme = ExtResource( 1 )
[node name="Timer" type="Timer" parent="ObservationWindow"]
[node name="Results" type="CanvasLayer" parent="."] [node name="Results" type="CanvasLayer" parent="."]
visible = false visible = false
[node name="Panel" type="Panel" parent="Results"]
anchor_right = 1.0
anchor_bottom = 1.0
theme = ExtResource( 1 )
[connection signal="pressed" from="StartScreen/InstructionPanel/MinuteBox/MinuteMinus" to="." method="_on_MinuteMinus_pressed"]
[connection signal="pressed" from="StartScreen/InstructionPanel/MinuteBox/MinutePlus" to="." method="_on_MinutePlus_pressed"]
[connection signal="pressed" from="StartScreen/InstructionPanel/BottomButtons/Manual" to="." method="_on_Manual_pressed"]

View File

@ -15,6 +15,17 @@ run/main_scene="res://main_screen.tscn"
run/low_processor_mode=true run/low_processor_mode=true
config/icon="res://icon.png" config/icon="res://icon.png"
[autoload]
GlobalInts="*res://global_ints.gd"
[display]
window/size/width=1280
window/size/height=720
window/stretch/mode="2d"
window/stretch/aspect="keep"
[gui] [gui]
common/drop_mouse_on_gui_input_disabled=true common/drop_mouse_on_gui_input_disabled=true
@ -25,4 +36,5 @@ common/enable_pause_aware_picking=true
[rendering] [rendering]
2d/snapping/use_gpu_pixel_snap=true
environment/default_environment="res://default_env.tres" environment/default_environment="res://default_env.tres"

View File

@ -60,7 +60,7 @@ corner_radius_bottom_right = 10
corner_radius_bottom_left = 10 corner_radius_bottom_left = 10
[sub_resource type="StyleBoxFlat" id=11] [sub_resource type="StyleBoxFlat" id=11]
bg_color = Color( 0.462745, 0.662745, 0.560784, 1 ) bg_color = Color( 0.952941, 0.933333, 0.847059, 1 )
border_width_left = 2 border_width_left = 2
border_width_top = 2 border_width_top = 2
border_width_right = 2 border_width_right = 2
@ -80,6 +80,7 @@ Button/styles/focus = SubResource( 5 )
Button/styles/hover = SubResource( 6 ) Button/styles/hover = SubResource( 6 )
Button/styles/normal = SubResource( 2 ) Button/styles/normal = SubResource( 2 )
Button/styles/pressed = SubResource( 7 ) Button/styles/pressed = SubResource( 7 )
Label/colors/font_color = Color( 0, 0, 0, 1 )
Label/fonts/font = SubResource( 3 ) Label/fonts/font = SubResource( 3 )
LineEdit/fonts/font = SubResource( 8 ) LineEdit/fonts/font = SubResource( 8 )
LineEdit/styles/normal = SubResource( 9 ) LineEdit/styles/normal = SubResource( 9 )

View File

@ -0,0 +1,75 @@
extends Panel
onready var booking_screen = $"%BookingScreen"
onready var lesson_grid = $"%LessonGrid"
onready var settings_button = $"%SettingsButton"
onready var important_vars = $"%impvars"
onready var booking_vars = $"%bookings"
onready var timer = $"%time"
onready var err_label = $"%ErrLabel"
onready var clear_button = $"%ClearButton"
onready var name1 = $"%Name1"
onready var name2 = $"%Name2"
onready var form1 = $"%Form1"
onready var form2 = $"%Form2"
onready var name3 = $"%Name3"
onready var form3 = $"%Form3"
onready var name4 = $"%Name4"
onready var form4 = $"%Form4"
onready var reason = $"%ReasonField"
func _clear_form():
name1.text = ""
name2.text = ""
form1.text = ""
form2.text = ""
name3.text = ""
name4.text = ""
form3.text = ""
form4.text = ""
reason.text = ""
func restore_names_to_four():
name3.visible = true
form3.visible = true
name4.visible = true
form4.visible = true
func _on_CancelButton_pressed():
booking_screen.visible = false
lesson_grid.visible = true
settings_button.visible = true
err_label.visible = false
clear_button.visible = false
restore_names_to_four()
_clear_form()
func _book_it():
booking_vars.set_values()
_clear_form()
func _on_BookButton_pressed():
if name1.text == "" or reason.text =="":
err_label.visible = true
else:
var namer = "/root/MainStartScreen/ButtonGrid/" + important_vars.pod + "L" + str(important_vars.time)
var sp = get_node(str(namer))
sp.text = "BOOKED"
_book_it()
_on_CancelButton_pressed()
func _on_ClearButton_pressed():
var namer = "/root/MainStartScreen/ButtonGrid/" + important_vars.pod + "L" + str(important_vars.time)
var sp = get_node(str(namer))
sp.text = ""
_clear_form()
_book_it()
_on_CancelButton_pressed()

378
podbooker/ButtonScript.gd Normal file
View File

@ -0,0 +1,378 @@
extends GridContainer
onready var booking_screen = $"%BookingScreen"
onready var important_vars = $"%impvars"
onready var booking_vars = $"%bookings"
onready var lesson_grid = $"%LessonGrid"
onready var times = $"%time"
onready var settings_button = $"%SettingsButton"
onready var name1 = $"%Name1"
onready var name2 = $"%Name2"
onready var form1 = $"%Form1"
onready var form2 = $"%Form2"
onready var reason = $"%ReasonField"
onready var name3 = $"%Name3"
onready var form3 = $"%Form3"
onready var name4 = $"%Name4"
onready var form4 = $"%Form4"
onready var pod_name_label = $"%PodName"
onready var lesson_name = $"%LessonName"
onready var day_name = $"%DayName"
onready var book_button = $"%BookButton"
onready var clear_button = $"%ClearButton"
func _ready():
pass # Replace with function body.
func set_booking_screen_values():
pod_name_label.text = "Pod " + important_vars.pod
lesson_name.text = "Lesson " + str(important_vars.time)
if important_vars.time == 8:
lesson_name.text = "Lunch Time"
day_name.text = "Today is " + times.dayofweek_word
booking_vars.read_values()
if name1.text != "":
book_button.text = "Save Changed Booking"
else:
book_button.text = "Book"
func drop_names_to_two():
print(important_vars.pod)
# or "A2" or "B1" or "B2"
if important_vars.pod == "A1":
name3.visible = false
form3.visible = false
name4.visible = false
form4.visible = false
if important_vars.pod == "A2":
name3.visible = false
form3.visible = false
name4.visible = false
form4.visible = false
if important_vars.pod == "B1":
name3.visible = false
form3.visible = false
name4.visible = false
form4.visible = false
if important_vars.pod == "B2":
name3.visible = false
form3.visible = false
name4.visible = false
form4.visible = false
# Let's agree that lesson 8 = lunch. No breaktime bookings anymore.
func book_button_pressed(pod_name, lesson):
# Only do anything if it's not empty
important_vars.pod = pod_name
important_vars.time = lesson
# This creates a variable called A1L1 etc
important_vars.current_pod = str(pod_name) + "L" + str(lesson)
set_booking_screen_values()
drop_names_to_two()
booking_screen.visible = true
lesson_grid.visible = false
settings_button.visible = false
if name1.text != "":
clear_button.visible = true
func _on_A1L1_pressed():
book_button_pressed("A1", 1)
func _on_A2L1_pressed():
book_button_pressed("A2", 1)
func _on_B1L1_pressed():
book_button_pressed("B1", 1)
func _on_B2L1_pressed():
book_button_pressed("B2", 1)
func _on_CL1_pressed():
book_button_pressed("C", 1)
func _on_DL1_pressed():
book_button_pressed("D", 1)
func _on_EL1_pressed():
book_button_pressed("E", 1)
func _on_FL1_pressed():
book_button_pressed("F", 1)
func _on_GL1_pressed():
book_button_pressed("G", 1)
func _on_A1L2_pressed():
book_button_pressed("A1", 2)
func _on_A2L2_pressed():
book_button_pressed("A2", 2)
func _on_B1L2_pressed():
book_button_pressed("B1", 2)
func _on_B2L2_pressed():
book_button_pressed("B2", 2)
func _on_CL2_pressed():
book_button_pressed("C", 2)
func _on_DL2_pressed():
book_button_pressed("D", 2)
func _on_EL2_pressed():
book_button_pressed("E", 2)
func _on_FL2_pressed():
book_button_pressed("F", 2)
func _on_GL2_pressed():
book_button_pressed("G", 2)
func _on_A1L3_pressed():
book_button_pressed("A1", 3)
func _on_A2L3_pressed():
book_button_pressed("A2", 3)
func _on_B1L3_pressed():
book_button_pressed("B1", 3)
func _on_B2L3_pressed():
book_button_pressed("B2", 3)
func _on_CL3_pressed():
book_button_pressed("C", 3)
func _on_DL3_pressed():
book_button_pressed("D", 3)
func _on_EL3_pressed():
book_button_pressed("E", 3)
func _on_FL3_pressed():
book_button_pressed("F", 3)
func _on_GL3_pressed():
book_button_pressed("G", 3)
func _on_A1L4_pressed():
book_button_pressed("A1", 4)
func _on_A2L4_pressed():
book_button_pressed("A2", 4)
func _on_B1L4_pressed():
book_button_pressed("B1", 4)
func _on_B2L4_pressed():
book_button_pressed("B2", 4)
func _on_CL4_pressed():
book_button_pressed("C", 4)
func _on_DL4_pressed():
book_button_pressed("D", 4)
func _on_EL4_pressed():
book_button_pressed("E", 4)
func _on_FL4_pressed():
book_button_pressed("F", 4)
func _on_GL4_pressed():
book_button_pressed("G", 4)
func _on_A1L5_pressed():
book_button_pressed("A1", 5)
func _on_A2L5_pressed():
book_button_pressed("A2", 5)
func _on_B1L5_pressed():
book_button_pressed("B1", 5)
func _on_B2L5_pressed():
book_button_pressed("B2", 5)
func _on_CL5_pressed():
book_button_pressed("C", 5)
func _on_DL5_pressed():
book_button_pressed("D", 5)
func _on_EL5_pressed():
book_button_pressed("E", 5)
func _on_FL5_pressed():
book_button_pressed("F", 5)
func _on_GL5_pressed():
book_button_pressed("G", 5)
func _on_A1L6_pressed():
book_button_pressed("A1", 6)
func _on_A2L6_pressed():
book_button_pressed("A2", 6)
func _on_B1L6_pressed():
book_button_pressed("B1", 6)
func _on_B2L6_pressed():
book_button_pressed("B2", 6)
func _on_CL6_pressed():
book_button_pressed("C", 6)
func _on_DL6_pressed():
book_button_pressed("D", 6)
func _on_EL6_pressed():
book_button_pressed("E", 6)
func _on_FL6_pressed():
book_button_pressed("F", 6)
func _on_GL6_pressed():
book_button_pressed("G", 6)
func _on_A1L7_pressed():
book_button_pressed("A1", 7)
func _on_A2L7_pressed():
book_button_pressed("A2", 7)
func _on_B1L7_pressed():
book_button_pressed("B1", 7)
func _on_B2L7_pressed():
book_button_pressed("B2", 7)
func _on_CL7_pressed():
book_button_pressed("C", 7)
func _on_DL7_pressed():
book_button_pressed("D", 7)
func _on_EL7_pressed():
book_button_pressed("E", 7)
func _on_FL7_pressed():
book_button_pressed("F", 7)
func _on_GL7_pressed():
book_button_pressed("G", 7)
func _on_A1L8_pressed():
book_button_pressed("A1", 8)
func _on_A2L8_pressed():
book_button_pressed("A2", 8)
func _on_B1L8_pressed():
book_button_pressed("B1", 8)
func _on_B2L8_pressed():
book_button_pressed("B2", 8)
func _on_CL8_pressed():
book_button_pressed("C", 8)
func _on_DL8_pressed():
book_button_pressed("D", 8)
func _on_EL8_pressed():
book_button_pressed("E", 8)
func _on_FL8_pressed():
book_button_pressed("F", 8)
func _on_GL8_pressed():
book_button_pressed("G", 8)

View File

@ -0,0 +1,71 @@
extends CanvasLayer
onready var timer = get_node("%time")
onready var important_vars = $"%impvars"
onready var booking_screen = $"%BookingScreen"
onready var lesson_grid = $"%LessonGrid"
onready var button_grid = $"%ButtonGrid"
onready var reset_menu = $"%ResetMenu"
onready var lunch_label = $"%Lesson8"
onready var a1l8 = $"%A1L8"
onready var a2l8 = $"%A2L8"
onready var b1l8 = $"%B1L8"
onready var b2l8 = $"%B2L8"
onready var cl8 = $"%CL8"
onready var dl8 = $"%DL8"
onready var el8 = $"%EL8"
onready var fl8 = $"%FL8"
onready var gl8 = $"%GL8"
var lunch_enabled = false
func create_ini_file():
var ini_title = important_vars.day_uid + ".ini"
print(ini_title)
# Called when the node enters the scene tree for the first time.
func _ready():
create_ini_file()
$"%DayLabel".text = timer.dayofweek_word + " " + str(timer.day_number) + " " + timer.month_word
booking_screen.visible = false
lesson_grid.visible = true
reset_menu.visible = false
# print(lunch_enabled)
func toggle_lunch():
if lunch_enabled == false:
lunch_label.visible = true
a1l8.visible = true
a2l8.visible = true
b1l8.visible = true
b2l8.visible = true
cl8.visible = true
dl8.visible = true
el8.visible = true
fl8.visible = true
gl8.visible = true
lunch_enabled = true
else:
lunch_label.visible = false
a1l8.visible = false
a2l8.visible = false
b1l8.visible = false
b2l8.visible = false
cl8.visible = false
dl8.visible = false
el8.visible = false
fl8.visible = false
gl8.visible = false
lunch_enabled = false
func show_reset_menu():
reset_menu.visible = true
lesson_grid.visible = false
button_grid.visible = false
func _on_SettingsButton_pressed():
# toggle_lunch()
show_reset_menu()

File diff suppressed because it is too large Load Diff

20
podbooker/ResetMenu.gd Normal file
View File

@ -0,0 +1,20 @@
extends Panel
onready var timer = get_node("%time")
onready var important_vars = $"%impvars"
onready var booking_screen = $"%BookingScreen"
onready var lesson_grid = $"%LessonGrid"
onready var button_grid = $"%ButtonGrid"
onready var reset_menu = $"%ResetMenu"
onready var password_field = $"%PasswordField"
func _on_ResetButton_pressed():
if password_field.text == "Heather":
get_tree().reload_current_scene()
func _on_CancelReset_pressed():
reset_menu.visible = false
lesson_grid.visible = true
button_grid.visible = true

BIN
podbooker/assets/FutuBk.ttf Normal file

Binary file not shown.

View File

@ -0,0 +1,98 @@
extends Node
var pod
var time
var day_uid
var day_uid2
var current_pod : String
var a1l1_booked : bool
var a2l1_booked : bool
var b1l1_booked : bool
var b2l1_booked : bool
var cl1_booked : bool
var dl1_booked : bool
var el1_booked : bool
var fl1_booked : bool
var gl1_booked : bool
var a1l2_booked : bool
var a2l2_booked : bool
var b1l2_booked : bool
var b2l2_booked : bool
var cl2_booked : bool
var dl2_booked : bool
var el2_booked : bool
var fl2_booked : bool
var gl2_booked : bool
var a1l3_booked : bool
var a2l3_booked : bool
var b1l3_booked : bool
var b2l3_booked : bool
var cl3_booked : bool
var dl3_booked : bool
var el3_booked : bool
var fl3_booked : bool
var gl3_booked : bool
var a1l4_booked : bool
var a2l4_booked : bool
var b1l4_booked : bool
var b2l4_booked : bool
var cl4_booked : bool
var dl4_booked : bool
var el4_booked : bool
var fl4_booked : bool
var gl4_booked : bool
var a1l5_booked : bool
var a2l5_booked : bool
var b1l5_booked : bool
var b2l5_booked : bool
var cl5_booked : bool
var dl5_booked : bool
var el5_booked : bool
var fl5_booked : bool
var gl5_booked : bool
var a1l6_booked : bool
var a2l6_booked : bool
var b1l6_booked : bool
var b2l6_booked : bool
var cl6_booked : bool
var dl6_booked : bool
var el6_booked : bool
var fl6_booked : bool
var gl6_booked : bool
var a1l7_booked : bool
var a2l7_booked : bool
var b1l7_booked : bool
var b2l7_booked : bool
var cl7_booked : bool
var dl7_booked : bool
var el7_booked : bool
var fl7_booked : bool
var gl7_booked : bool
var a1l8_booked : bool
var a2l8_booked : bool
var b1l8_booked : bool
var b2l8_booked : bool
var cl8_booked : bool
var dl8_booked : bool
var el8_booked : bool
var fl8_booked : bool
var gl8_booked : bool
# Called when the node enters the scene tree for the first time.
func _ready():
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass

Binary file not shown.

1981
podbooker/assets/bookings.gd Normal file

File diff suppressed because it is too large Load Diff

BIN
podbooker/assets/logo.icns Normal file

Binary file not shown.

BIN
podbooker/assets/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/logo.png-e2220799298e3631eb0e245316e0501a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/logo.png"
dest_files=[ "res://.import/logo.png-e2220799298e3631eb0e245316e0501a.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/noun-grand-central-terminal-2828893.png-32d9b297bbaa83d2ddd483e2810ca9ce.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/noun-grand-central-terminal-2828893.png"
dest_files=[ "res://.import/noun-grand-central-terminal-2828893.png-32d9b297bbaa83d2ddd483e2810ca9ce.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

BIN
podbooker/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

35
podbooker/icon.png.import Normal file
View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

27
podbooker/kellett.tres Normal file
View File

@ -0,0 +1,27 @@
[gd_resource type="Theme" load_steps=7 format=2]
[ext_resource path="res://assets/NotoSansDisplay-Medium.ttf" type="DynamicFontData" id=1]
[sub_resource type="DynamicFont" id=1]
font_data = ExtResource( 1 )
[sub_resource type="StyleBoxFlat" id=3]
bg_color = Color( 0.427451, 0.431373, 0.443137, 1 )
[sub_resource type="StyleBoxFlat" id=2]
bg_color = Color( 0, 0.0431373, 0.294118, 1 )
[sub_resource type="StyleBoxFlat" id=4]
bg_color = Color( 0.647059, 0, 0, 1 )
[sub_resource type="StyleBoxFlat" id=5]
[resource]
default_font = SubResource( 1 )
Button/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 )
Button/fonts/font = SubResource( 1 )
Button/styles/hover = SubResource( 3 )
Button/styles/normal = SubResource( 2 )
Button/styles/pressed = SubResource( 4 )
Label/colors/font_color = Color( 0, 0, 0, 1 )
Panel/styles/panel = SubResource( 5 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/noun-cogs-1959786.png-346f5ef56cede1c10eebb97222280b34.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://noun-cogs-1959786.png"
dest_files=[ "res://.import/noun-cogs-1959786.png-346f5ef56cede1c10eebb97222280b34.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

41
podbooker/project.godot Normal file
View File

@ -0,0 +1,41 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
[application]
config/name="PodBooker"
run/main_scene="res://MainStartScreen.tscn"
run/low_processor_mode=true
boot_splash/show_image=false
boot_splash/bg_color=Color( 0, 0.0431373, 0.294118, 1 )
config/icon="res://assets/logo.png"
config/macos_native_icon="res://assets/logo.icns"
[display]
window/size/fullscreen=true
window/stretch/mode="2d"
window/stretch/aspect="keep"
[gui]
common/drop_mouse_on_gui_input_disabled=true
[physics]
common/enable_pause_aware_picking=true
[rendering]
quality/driver/driver_name="GLES2"
2d/snapping/use_gpu_pixel_snap=true
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"

102
podbooker/time_script.gd Normal file
View File

@ -0,0 +1,102 @@
extends Node
onready var important_vars = $"/root/MainStartScreen/impvars"
var time = Time.get_datetime_dict_from_system()
var dayofweek = time["weekday"]
var day_number = time["day"]
var month_number = time["month"]
var year_number = time["year"]
var dayofweek_word
var month_word
var clock = Time.get_time_dict_from_system()
var refresh_timer = 0
var waiting_timer = 10000
signal timer_beat
# Called when the node enters the scene tree for the first time.
func _ready():
# warning-ignore:return_value_discarded
connect("timer_beat", self, "on_timer_beat")
# Give the day a unique number
important_vars.day_uid = str(day_number) + str(month_number) + str(year_number)
important_vars.day_uid2 = str(day_number) + str(month_number) + str(year_number)
# A really long-winded way to convert an array. There is a better way to map it. Will update
# once I know.
if dayofweek == 0:
dayofweek_word = "Sunday"
if dayofweek == 1:
dayofweek_word = "Monday"
if dayofweek == 2:
dayofweek_word = "Tuesday"
if dayofweek == 3:
dayofweek_word = "Wednesday"
if dayofweek == 4:
dayofweek_word = "Thursday"
if dayofweek == 5:
dayofweek_word = "Friday"
if dayofweek == 6:
dayofweek_word = "Saturday"
if month_number == 1:
month_word = "January"
if month_number == 2:
month_word = "February"
if month_number == 3:
month_word = "March"
if month_number == 4:
month_word = "April"
if month_number == 5:
month_word = "May"
if month_number == 6:
month_word = "June"
if month_number == 7:
month_word = "July"
if month_number == 8:
month_word = "August"
if month_number == 9:
month_word = "September"
if month_number == 10:
month_word = "October"
if month_number == 11:
month_word = "November"
if month_number == 12:
month_word = "December"
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
refresh_timer += 1
if refresh_timer > waiting_timer:
refresh_timer = 0
emit_signal("timer_beat")
print("Beat!")
func on_timer_beat():
important_vars.day_uid2 = str(day_number) + str(month_number) + str(year_number)
print("Yup!")
if important_vars.day_uid != important_vars.day_uid2:
get_tree().reload_current_scene()