DaylightChangerStruggle
A fully-clientsided mod which changes the daylight cycle without the need of fiddling around with commands. (Unless if you have a preference in doing so!) This mod is intended to expand more on the idea in what it means to give the user more control and options to toy around with daylight instead of being a mod for one specific purpose.
It is also compatible with mods such as Sodium and Iris.
Features
- The ability to pick different kinds of cycles (see Cycle Types), not just set the time
- Easings, a way to decide how a transition should animate (Only used in some cycle types)
- A buttery-smooth cycle that isn't based on ticks alone, but on the interpolation of ticks (you have the option to disable this if not wanted)
- Toggle world daylight and the mod's daylight
- Disable night-vision should the server enforce it upon you (this does not have the option to brighten up the world like some mods; it just disables the effect alone)
- A user interface which does not rely on libraries to make its own configuration and also features a viewable 2-list menu depending if the resolution in the game is supported
- The user interface also has tooltips for almost all of the widgets you interact with so that you know what they do and how they function
- Option to use commands alongside the User Interface
- Trying to edit preferences here is not currently supported yet!
Cycle Types
Cycle Types are a way to experience daylight in ways that are unique and tailored to your preferences.
Since the initial release of the mod, the following types are available to use:
- Static - Combines
/time set <time>and/gamerule doDaylightCycle falsebut without needing to do both and referred to as "set the time" - Moving - Moves the time whilst setting a speed (use negative for reverse-daylight cycle)
- System - Adjusts the time based on your system clock, also sets Minecraft days to better represent the current time
- Randomizers - A seizure-friendly daylight cycle which will question why you are playing Minecraft
- Low-to-High Height Time - Depending on your height (or the viewing entity's), you can decide the minimum and maximum value and tie both of them with a set time
- And... more in the future?
Getting Started
- To show a user interface for the mod, bind the key "Open Time Changer Menu" to anything you'd like to and when in-game press the key and the menu should be seen.
- Or if you want to use commands instead, type either
/daylightchanger,/dcs,/tcsor/timechanger.
After that, you will have to disable World Time and then open Cycle Menu / switch the cycle by clicking on two arrows pointing opposite of each other and you will see the magic ;)
Modpacks
If you want to use this mod in a modpack, no need to ask! You are free to do so as long as you're not making any money off from it.
All Versions
+ Add Version## Hotfix
- Fix a game crash when joining a world without a defined cycle set
- This occurs when starting the mod fresh without any prior configuration in regards to the cycle being set.
## Additions
### Keybind Shortcuts
- Can now toggle the option in disabling night vision's potion effect
- Can now quickly switch cycles via next and previous
- Same as when quick-switching via the menu
### Commands
- The
/dcs optioncommand now shows all available options - It is both interactive and can be hovered to show what these options do
- Clicking on the checkbox next to the option applies the value in a fixed form
- Clicking on the option text itself toggles the value
### User Interface
- Right-clicking a cycling button now cycles to its previous value
- Non-cycling buttons which also support right-clicking (such as Quick-Switch Cycle in the main menu) can now
## Changes
### Randomizer Cycle
- Now supports negative values being used for Daylight Random Time (applies to both minimum and maximum)
### Commands
- Renamed the cycle's
optionsubcommand topropertyScreento better reflect what it really does - While at it,
propertyScreennow opens the actual property screen when executing the command, rather
- The
/dcs cyclecommand now shows its list of cycles in a less confusing manner where now only the active
### Remembering States on World Change/Leave
- Now has a separate way for general cycle saving: Keybind shortcuts which make preference changes will now mark
- For example, World Time toggles or disabling the night vision's effect as keybind toggles tells the mod to
### Cycle Property Sub-Screen
- Updated Auto-Save, Save and Reset's descriptions
- Now both Save and Reset contain multi-line tooltip descriptions
- Save button's width size was expanded to account for button text changes, which are now longer
## Bugfixes
- Introduced in
v0.0.4+26.1, the mod's client clock that replaced the vanilla version's in the client world
update due to Mixin overrides. Now updates regardless of whether DCS clock is used; not that it would've affected
much, considering it's only enabled briefly during environment attribute lookup.
## Removals
### Mod Screen
- Removed the internal unused configuration button and screen which did nothing
## Additions
### Keybind Shortcuts
- Can now toggle the option in disabling night vision's potion effect
- Can now quickly switch cycles via next and previous
- Same as when quick-switching via the menu
### Commands
- The
/dcs optioncommand now shows all available options - It is both interactive and can be hovered to show what these options do
- Clicking on the checkbox next to the option applies the value in a fixed form
- Clicking on the option text itself toggles the value
### User Interface
- Right-clicking a cycling button now cycles to its previous value
- Non-cycling buttons which also support right-clicking (such as Quick-Switch Cycle in the main menu) can now
## Changes
### Randomizer Cycle
- Now supports negative values being used for Daylight Random Time (applies to both minimum and maximum)
### Commands
- Renamed the cycle's
optionsubcommand topropertyScreento better reflect what it really does - While at it,
propertyScreennow opens the actual property screen when executing the command, rather
- The
/dcs cyclecommand now shows its list of cycles in a less confusing manner where now only the active
### Remembering States on World Change/Leave
- Now has a separate way for general cycle saving: Keybind shortcuts which make preference changes will now mark
- For example, World Time toggles or disabling the night vision's effect as keybind toggles tells the mod to
### Cycle Property Sub-Screen
- Updated Auto-Save, Save and Reset's descriptions
- Now both Save and Reset contain multi-line tooltip descriptions
- Save button's width size was expanded to account for button text changes, which are now longer
## Removals
### Mod Screen
- Removed the internal unused configuration button and screen which did nothing
v0.0.3+1.21.11.## Changes
- Numeric Widget now allows for setting negative numbers
- More specifically, allowing the use of a dash at the start of the text
- This is treated as
0if only the dash is present, which might be valid depending on the numeric property used in - Remembers now the screens responsible for opening the mod's screen, if there were any
- System Time now includes the previous cached time at the start of the cycle creation
- Translation descriptions received minor changes
## Bugfixes
- Fixed a bug introduced in some releases ago where changing the world time from the mod never updated when the game was paused in single player
- However, there still is a very minor bug but this but can be largely fixed by making changes that affect the world time (inconsistently applied from the cycle properties for the most part with the exception of static/moving time)
- Fix smoothness still being applied even when disabled in areas where the daylight cycle has an effect in the world, such as sky lighting and cloud coloring
- Fix the numeric text field's invalid text color lacking an alpha value (Regression)
- Low to High Height Time's lowest value did not allow setting for 0 or below
v0.0.3+1.21.11 and a backport from 26.1.## Changes
- Numeric Widget now allows for setting negative numbers
- More specifically, allowing the use of a dash at the start of the text
- This is treated as
0if only the dash is present, which might be valid depending on the numeric property used in - Remembers now the screens responsible for opening the mod's screen, if there were any
- System Time now includes the previous cached time at the start of the cycle creation
- Translation descriptions received minor changes
## Bugfixes
- Fixed a bug introduced in some releases ago where changing the world time from the mod never updated when the game was paused in single player
- However, there still is a very minor bug but this but can be largely fixed by making changes that affect the world time (inconsistently applied from the cycle properties for the most part with the exception of static/moving time)
- Fix smoothness still being applied even when disabled in areas where the daylight cycle has an effect in the world, such as sky lighting and cloud coloring
- Fix the numeric text field's invalid text color lacking an alpha value (Regression)
- Low to High Height Time's lowest value did not allow setting for 0 or below
## Notes
- Due to how this version changed the daylight cycle functionality, the sky/block cycle will no longer update
- This is only applied if playing in a single player world where everything is paused, but the changes will
- While porting it, I've noticed a new option exclusive to this version could be made where the Timeline
- Another thing noticed is the vast amount of options one can get when it comes to modifying individual
directly, such as smooth cycle now being the default in this version (in Vanilla) unlike older versions
where it required a mod like this one.
# Additions
These features are only added due to 1.20+ versions of the game having these features. All of them are User
Interface related.
## Key Expansion: Arrow Keys
- Lets the user move freely around the menus
- This does not replace the TAB functionality, but expands on it
- Has some bugs due to not having enough time
- When wanting to save the properties of a cycle, make sure to use TAB instead as no arrow support was
## Tooltip Support: Mouse or Keys
Key support was now added to account for tooltips, including Vanilla's TAB action and behaves similarly to
the latest ports.
## Additions
- Add support for mouse cursors introduced in this Minecraft version
## Changes
- List Widget: The background gradient will now hide if the scrollbar is already displayed due to list entries
## Bugfixes
- List Widget: Fixed certain visual and interaction issues by removing offsets by which the list widgets never used
- Configuration: Internally added the ability for the property
allowWorldChangeCyclesToWriteToDiskto be written to
- Note: Previously, this property would be read but if wanted to be written to disk, this simply wouldn't happen
## Additions (for this port only)
- Rainbow Shader is used
- Based on the initial release version from 1.19 with changes to support this version
## Changes
- List Widget: The background gradient will now hide if the scrollbar is already displayed due to list entries
## Bugfixes
- List Widget: Fixed certain visual and interaction issues by removing offsets by which the list widgets never used
- Configuration: Internally added the ability for the property
allowWorldChangeCyclesToWriteToDiskto be written to
- Note: Previously, this property would be read but if wanted to be written to disk, this simply wouldn't happen
## Additions
### Narrator
- Will now account for tooltips: This works by reading the tooltips after the widget text
- Works similarly to how the Vanilla approach does them, but not in a clean way (to avoid caching tooltip
- Widgets which the narrator shouldn't bother narrating will be skipped towards reading the tooltip description instead
## Changes
### Rainbow Shader
- Removed the Rainbow Shader and its functions in the meantime to help port the mod for future Minecraft versions
- As a result, this was replaced with a gradient-like rainbow look which uses a pretty similar style to the rest
### Tooltips
- Made them slightly readable by having the description of the tooltip be of gray color
- The title of the tooltip remains as-is
- Now responds to keyboard inputs, uses vanilla's tooltip approach
- If there is not enough space to show the tooltips on above of either a selected or hovered widget, they're now moved
- So far, only the Back button is affected by this due to it being on top-left of the screen. Older versions showed
## Additions
### Static Time
- Quick Options: Added modifier key description on buttons that have a value other than 0 (Sunrise is the only one that
- The ability to use modifier keys were available in the initial release version but were never shown
### Moving Time
- Now shares a similar quick-option style from Static Time
- Is now accounted for when doing
/daylightchanger time add(orremove,set)<time>(closes [issue #2](https://github.com/JuggleStruggle/DaylightChangerStruggle/issues/2))
### Randomizers
- Seed Section: A new button option to set the RNG back to its initial state
- Note: Just like in the initial release, the "Initial Seed" text widget only changes its seed to its initial state
### Moving Time & Randomizers
- Have an extra category that aims to make 2 internal values accessible so the user can get to modify them
- The rest can be modified on a configuration, though this is not intended to be done this way as it will likely break
### Saving Cycle States and Remembering States on World Change/Leave
- Note: Only Moving Time and Randomizers get this addition and change due to their nature with needing to store caches
- Can now save the states for both while either switching or leaving a world
- However, this is still a bit buggy when starting from a new instance but is not that big of a deal.
- To disable the option to save into a disk while this is happening, use the command version and write:
/daylightchanger option allowWorldChangeCyclesToWriteToDisk false- Randomizers will not be able to remember the seed as there is no current option to reset the seed back to its
## Known Issues
### System Time
- The year is still broken when using Date Over Ticks option in the screen