1.1 Visual Calendar, Weeks, Event Days, and Event Response Scripts
Requires Godot 4.4.0 or newer (Currently in beta at time of release)
Godot 4.4.0 adds typed dictionaries which greatly help indicate the purpose of each dictionary so this upgrade is worth it in my view. World time 1.0.2 should work fine with 4.3 in the meantime if you want to wait for the full release of Godot 4.4.0 (Beta 2 atm)
- Signal Responsive Calendar Display
- Date Change Log
- Event Day Triggers
- Random Spawn on Date Change
- Random Toggle Visibility On / Off on Date Change (Random weather events)
- Time of Day Toggle On / Off
- Fixed Time of Day Light
EventDay (New)
- Resource for creating markers for special days that occur during your game.
- You can assign these two date numbers in the GameMonth during GameCalendar resource setup.
- TimeState has a special signal for when an EventDay is entered event_day_started. This can be used to trigger special events. You can also read from the event_day property to check if there is an active EventDay anytime.
Calendar Display (New) & UI Template
- Added a game calendar template UI that displays days in day of the week columns for a given game month.
- You can switch between month tabs and years to display any date within the calendar.
- Current day will automatically highlight as date progresses
- Calendar can automatically switch the current month and year tab when the date updates
- Go to current date button allows you to navigate to the current GameDate on the TimeState.
- Displays special in-game EventDays with icon, tooltip, and modified date name wrapper.
TimeOfDayToggle (New)
- Turn a property on at selected times of day and off at all others
- See demo for example on toggling town lights on or off depending on time of day.
Time Event Messenger (New)
- Connects to TimeState events to generate messages for output to console or any text UI that can connect to its message_created events.
- Made as a resource to remain seperate from the UI view and easily reusable in any log UI script
Time Event Log (New)
- Simple rich text label template for showing TimeEventMessenger message created events. Demonstrates how TimeEventMessenger can be used for any log UI that takes message strings and appends them somewhere.
- Primarily meant as a debug tool, but can be basis of a bigger in game log system.
Time State
- Has a time scale propety built in that changes the rate at which game time progresses compared to engine time. This is now distinctly seperate from the speed slider which scales the delta for game mechanics in addition to effecting the game time.
- date_changed signal parameters simplified down to DateChangeEvent. Signal callbacks now need to handle one DateChangeEvent parameter and all emitted data is stored within.
Engine Time Scale Slider
- Increases and decreases the delta scale for everything in the game. This will effect the game time progression in addition to animations, physics movement, and pretty much everything else. Think Sims normal, fast forward, pause etc
Game Time System
- game_years array renamed to years. If using a custom calendar, this will need to be reassigned.
DayNightCycleSystem
- Now processes time of day changes off of the date_time of TimeState rather than the game seconds to solve a bug with GameTimeProgress (see below)
GameTimeProgress
- Fixed a bug where GameTimeProgress would setup just before DateTimeChanged would be emitted, it now awaits for the signal so the date time has a chance to update properly.
Time Format
- Restructured how date and time is formatted as strings to use property substitution. As formatted methods in DateTime, HoursTime, and GameDate.
- Operates off of date_time_changed signal now which updates after game_seconds_updated. This ensures that Time of Day Transitions operate off of the correct DateTime instead of using the game_seconds property.
- Day, month, year by default now show only the digits that the number fits into with no leading zeros. This is completely customizable by following standard Godot string format rules.
Templates (as included zip package)
UI and resource templates are now included in the template zip (one of 3 inside the download). It is recommended to install these to templates/world_time. These are preset up with proper resource bindings like TimeState for the scenes that use them. Feel free top copy them elsewhere into your project, edit them, create inherited scenes, etc. They are simply meant to quick start getting the plugin running. I recommend adding world_time_systems.tscn to your main gameplay scene, and then using date_time_display.tscn in your UI controls to show what is happening on the time state as the GameTimeSystem modifies the TimeState
Files
Get World Time & Game Calendar Plugin for Godot 4
World Time & Game Calendar Plugin for Godot 4
Godot 4 Calendar System, Day Night Cycles, and Object Ageing Plugin
Status | In development |
Category | Assets |
Author | Chris' Tutorials |
Tags | 2D, Godot, godot4, lighting, plugin, time |
More posts
- 1.1.1 Time Dial14 hours ago
- 1.0.2 Starting Date HotfixAug 07, 2024
- 1.0.1 Bug Fixes & Warning ImprovementsMay 10, 2024
- 1.0.0 Release - Stateful Shared ResourcesMay 05, 2024
- 0.4.1 Full Video Tutorial, Useful Tester UIs, and Bug FixesOct 25, 2023
- 0.4 Cleaner Signals and DateTime StructureOct 12, 2023
Leave a comment
Log in with itch.io to leave a comment.