lil_sue

Sandman

May 14th, 2025 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GDScript 2.33 KB | Gaming | 0 0
  1. extends Node
  2. ###============================================================================
  3. ## === AT THE CURRENT MOMMENT THIS HAS NO EFFECT ON SKY3D ONLY TIME_DISPLAY ===
  4. @onready var time_of_day: TimeOfDay = $Enviro/Sky3D/TimeOfDay
  5. @onready var secondhand: Timer = $Body/Neck/Head/eyes/third_person/Time_display/secondhand
  6. @onready var clock_display = $Player/Time_display
  7.  
  8. ##================THIS NEEDS TO BE WORKD ON ===================================
  9. @export var FOCUS_TIME: float = 1440 #Good guy 1 sec = 1 sec
  10. @export var REGULAR_TIME: float = 1440 / 10 #Good Guy 1 sec = 10 secs
  11. @export var PANIC_TIME: float = 1440 / 60 #Good Guy 1 sec = 1 min
  12. @export var WARPED_TIME: float = 1440 / 2400 # WANK!
  13.  
  14. var daylength: float = REGULAR_TIME  # default starting speed
  15. var is_paused: bool = false
  16. ##=============================================================================
  17.  
  18. # Start and end time as in-game values (24-hour clock)
  19. @export var START_TIME = {"H": 21, "M": 32, "S": 0}
  20. @export var END_TIME = {"H": 11, "M": 34, "S": 18}
  21. # Converted to decimal time
  22. @export var DAY_START = 21.533
  23. @export var DAY_END = 11.571
  24.  
  25. func _ready() -> void:
  26.     update_time_speed(daylength)
  27.     # Set the starting time
  28.     clock_display.H = START_TIME["H"]
  29.     clock_display.M = START_TIME["M"]
  30.     clock_display.S = START_TIME["S"]
  31.  
  32. func _input(event):
  33.     if event is InputEventKey and event.pressed:
  34.         match event.keycode:
  35.             KEY_1:
  36.                 update_time_speed(FOCUS_TIME)
  37.             KEY_2:
  38.                 update_time_speed(REGULAR_TIME)
  39.             KEY_3:
  40.                 update_time_speed(PANIC_TIME)
  41.             KEY_4:
  42.                 update_time_speed(WARPED_TIME)
  43.             KEY_5:
  44.                 toggle_pause()
  45.  
  46. func update_time_speed(new_daylength: float) -> void:
  47.     daylength = new_daylength
  48.     time_of_day.total_cycle_in_minutes = daylength
  49.  
  50.     var seconds_per_game_second = (daylength * 60.0) / 86400.0
  51.     secondhand.wait_time = seconds_per_game_second
  52.  
  53.     if not is_paused:
  54.         secondhand.start()
  55.  
  56. func toggle_pause() -> void:
  57.     is_paused = !is_paused
  58.     if is_paused:
  59.         secondhand.stop()
  60.     else:
  61.         secondhand.start()
  62.  
  63. # Called by the Timer every tick — add this to Time_display.gd script
  64. func check_if_time_reached():
  65.     var clock = clock_display
  66.     if clock.H == END_TIME["H"] and clock.M == END_TIME["M"] and clock.S == END_TIME["S"]:
  67.         get_tree().paused = true  # Or your own game-ending logic
  68.         print("End time reached.")
  69.        
  70.  
Add Comment
Please, Sign In to add comment