mc-daynight/data/_daynight/function/construct.mcfunction
2026-03-08 01:49:16 +01:00

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