mirror of
https://codeberg.org/vlw/mc-daynight.git
synced 2026-04-13 03:09:38 +02:00
29 lines
1.8 KiB
MCFunction
Executable file
29 lines
1.8 KiB
MCFunction
Executable file
# Destruct singleton before constructing
|
|
function _daynight:destruct
|
|
|
|
# Summon an armor stand that will be used as the target entity for in-game commands
|
|
execute as @s run summon armor_stand 0.0 0.0 0.0 { CustomName: daynight_entity_daytime, Invisible: true, Health: 600.0f, NoGravity: true, Marker: true }
|
|
|
|
# Store the current state of gamerule advance_time
|
|
scoreboard objectives add daynight_score_runtime_gamerule_advancetime dummy [ daynight_score_runtime_gamerule_advancetime ]
|
|
execute as @p store result score @e[ name=daynight_entity_daytime, type=armor_stand, x=0.0, y=0.0, z=0.0 ] daynight_score_runtime_gamerule_advancetime run gamerule advance_time
|
|
|
|
# Set up scoreboard objective to track the current time
|
|
scoreboard objectives add daynight_score_runtime_daytime_tick dummy [ daynight_score_runtime_daytime_tick ]
|
|
# Set up scoreboard objective to track when we should advance the time
|
|
scoreboard objectives add daynight_score_runtime_advance_time_mtick dummy [ daynight_score_runtime_advance_time_mtick ]
|
|
scoreboard players set @e[ name=daynight_entity_daytime, type=armor_stand, x=0.0, y=0.0, z=0.0 ] daynight_score_runtime_advance_time_mtick 0
|
|
|
|
# Set up scoreboard objectives to store day and night time length in ticks
|
|
scoreboard objectives add daynight_score_setting_ticks_day trigger [ daynight_score_setting_ticks_day ]
|
|
scoreboard objectives add daynight_score_setting_ticks_night trigger [ daynight_score_setting_ticks_night ]
|
|
|
|
# Set up scoreboard objectives to store at which tick day and night start
|
|
scoreboard objectives add daynight_score_setting_day_end_tick trigger [ daynight_score_setting_day_end_tick ]
|
|
scoreboard objectives add daynight_score_setting_day_start_tick trigger [ daynight_score_setting_day_start_tick ]
|
|
|
|
# Set default values
|
|
function _daynight:defaults
|
|
|
|
# Start main execution loop
|
|
schedule function _daynight:tick 1s replace
|