1use crate :: timeline :: { Timeline , TimelineRegistry , Track , Keyframe , KeyframeValue , Ease , TimeMarker } ; use steel_utils :: Identifier ; pub static VILLAGER_SCHEDULE : Timeline = Timeline { key : Identifier :: vanilla_static ("villager_schedule") , clock : & crate :: vanilla_world_clocks :: OVERWORLD , period_ticks : Some (24000i32) , tracks : & [Track { name : "minecraft:gameplay/baby_villager_activity" , ease : None , modifier : None , keyframes : & [Keyframe { ticks : 10i64 , value : KeyframeValue :: String ("minecraft:idle") , } , Keyframe { ticks : 3000i64 , value : KeyframeValue :: String ("minecraft:play") , } , Keyframe { ticks : 6000i64 , value : KeyframeValue :: String ("minecraft:idle") , } , Keyframe { ticks : 10000i64 , value : KeyframeValue :: String ("minecraft:play") , } , Keyframe { ticks : 12000i64 , value : KeyframeValue :: String ("minecraft:rest") , }] , } , Track { name : "minecraft:gameplay/villager_activity" , ease : None , modifier : None , keyframes : & [Keyframe { ticks : 10i64 , value : KeyframeValue :: String ("minecraft:idle") , } , Keyframe { ticks : 2000i64 , value : KeyframeValue :: String ("minecraft:work") , } , Keyframe { ticks : 9000i64 , value : KeyframeValue :: String ("minecraft:meet") , } , Keyframe { ticks : 11000i64 , value : KeyframeValue :: String ("minecraft:idle") , } , Keyframe { ticks : 12000i64 , value : KeyframeValue :: String ("minecraft:rest") , }] , }] , time_markers : & [] , } ; pub static MOON : Timeline = Timeline { key : Identifier :: vanilla_static ("moon") , clock : & crate :: vanilla_world_clocks :: OVERWORLD , period_ticks : Some (192000i32) , tracks : & [Track { name : "minecraft:gameplay/surface_slime_spawn_chance" , ease : Some (Ease :: Named ("constant")) , modifier : Some ("maximum") , keyframes : & [Keyframe { ticks : 0i64 , value : KeyframeValue :: Float (0.5f32) , } , Keyframe { ticks : 24000i64 , value : KeyframeValue :: Float (0.375f32) , } , Keyframe { ticks : 48000i64 , value : KeyframeValue :: Float (0.25f32) , } , Keyframe { ticks : 72000i64 , value : KeyframeValue :: Float (0.125f32) , } , Keyframe { ticks : 96000i64 , value : KeyframeValue :: Float (0f32) , } , Keyframe { ticks : 120000i64 , value : KeyframeValue :: Float (0.125f32) , } , Keyframe { ticks : 144000i64 , value : KeyframeValue :: Float (0.25f32) , } , Keyframe { ticks : 168000i64 , value : KeyframeValue :: Float (0.375f32) , }] , } , Track { name : "minecraft:visual/moon_phase" , ease : None , modifier : None , keyframes : & [Keyframe { ticks : 0i64 , value : KeyframeValue :: String ("full_moon") , } , Keyframe { ticks : 24000i64 , value : KeyframeValue :: String ("waning_gibbous") , } , Keyframe { ticks : 48000i64 , value : KeyframeValue :: String ("third_quarter") , } , Keyframe { ticks : 72000i64 , value : KeyframeValue :: String ("waning_crescent") , } , Keyframe { ticks : 96000i64 , value : KeyframeValue :: String ("new_moon") , } , Keyframe { ticks : 120000i64 , value : KeyframeValue :: String ("waxing_crescent") , } , Keyframe { ticks : 144000i64 , value : KeyframeValue :: String ("first_quarter") , } , Keyframe { ticks : 168000i64 , value : KeyframeValue :: String ("waxing_gibbous") , }] , }] , time_markers : & [] , } ; pub static DAY : Timeline = Timeline { key : Identifier :: vanilla_static ("day") , clock : & crate :: vanilla_world_clocks :: OVERWORLD , period_ticks : Some (24000i32) , tracks : & [Track { name : "minecraft:audio/firefly_bush_sounds" , ease : None , modifier : Some ("or") , keyframes : & [Keyframe { ticks : 12600i64 , value : KeyframeValue :: Bool (true) , } , Keyframe { ticks : 23401i64 , value : KeyframeValue :: Bool (false) , }] , } , Track { name : "minecraft:gameplay/bees_stay_in_hive" , ease : None , modifier : Some ("or") , keyframes : & [Keyframe { ticks : 12542i64 , value : KeyframeValue :: Bool (true) , } , Keyframe { ticks : 23460i64 , value : KeyframeValue :: Bool (false) , }] , } , Track { name : "minecraft:gameplay/cat_waking_up_gift_chance" , ease : Some (Ease :: Named ("constant")) , modifier : Some ("maximum") , keyframes : & [Keyframe { ticks : 362i64 , value : KeyframeValue :: Float (0f32) , } , Keyframe { ticks : 23667i64 , value : KeyframeValue :: Float (0.7f32) , }] , } , Track { name : "minecraft:gameplay/creaking_active" , ease : None , modifier : Some ("or") , keyframes : & [Keyframe { ticks : 12600i64 , value : KeyframeValue :: Bool (true) , } , Keyframe { ticks : 23401i64 , value : KeyframeValue :: Bool (false) , }] , } , Track { name : "minecraft:gameplay/eyeblossom_open" , ease : None , modifier : None , keyframes : & [Keyframe { ticks : 12600i64 , value : KeyframeValue :: Bool (true) , } , Keyframe { ticks : 23401i64 , value : KeyframeValue :: Bool (false) , }] , } , Track { name : "minecraft:gameplay/monsters_burn" , ease : None , modifier : Some ("or") , keyframes : & [Keyframe { ticks : 12542i64 , value : KeyframeValue :: Bool (false) , } , Keyframe { ticks : 23460i64 , value : KeyframeValue :: Bool (true) , }] , } , Track { name : "minecraft:gameplay/sky_light_level" , ease : None , modifier : Some ("multiply") , keyframes : & [Keyframe { ticks : 133i64 , value : KeyframeValue :: Float (1f32) , } , Keyframe { ticks : 11867i64 , value : KeyframeValue :: Float (1f32) , } , Keyframe { ticks : 13670i64 , value : KeyframeValue :: Float (0.26666668f32) , } , Keyframe { ticks : 22330i64 , value : KeyframeValue :: Float (0.26666668f32) , }] , } , Track { name : "minecraft:gameplay/turtle_egg_hatch_chance" , ease : Some (Ease :: Named ("constant")) , modifier : Some ("maximum") , keyframes : & [Keyframe { ticks : 21062i64 , value : KeyframeValue :: Float (1f32) , } , Keyframe { ticks : 21905i64 , value : KeyframeValue :: Float (0.002f32) , }] , } , Track { name : "minecraft:visual/cloud_color" , ease : None , modifier : Some ("multiply") , keyframes : & [Keyframe { ticks : 133i64 , value : KeyframeValue :: Int (- 1 as i32) , } , Keyframe { ticks : 11867i64 , value : KeyframeValue :: Int (- 1 as i32) , } , Keyframe { ticks : 13670i64 , value : KeyframeValue :: Int (- 15132378 as i32) , } , Keyframe { ticks : 22330i64 , value : KeyframeValue :: Int (- 15132378 as i32) , }] , } , Track { name : "minecraft:visual/fog_color" , ease : None , modifier : Some ("multiply") , keyframes : & [Keyframe { ticks : 133i64 , value : KeyframeValue :: String ("#ffffff") , } , Keyframe { ticks : 11867i64 , value : KeyframeValue :: String ("#ffffff") , } , Keyframe { ticks : 13670i64 , value : KeyframeValue :: String ("#0c0c16") , } , Keyframe { ticks : 22330i64 , value : KeyframeValue :: String ("#161616") , }] , } , Track { name : "minecraft:visual/moon_angle" , ease : Some (Ease :: CubicBezier ([0.362f32 , 0.241f32 , 0.638f32 , 0.759f32])) , modifier : None , keyframes : & [Keyframe { ticks : 6000i64 , value : KeyframeValue :: Float (540f32) , } , Keyframe { ticks : 6000i64 , value : KeyframeValue :: Float (180f32) , }] , } , Track { name : "minecraft:visual/sky_color" , ease : None , modifier : Some ("multiply") , keyframes : & [Keyframe { ticks : 133i64 , value : KeyframeValue :: String ("#ffffff") , } , Keyframe { ticks : 11867i64 , value : KeyframeValue :: String ("#ffffff") , } , Keyframe { ticks : 13670i64 , value : KeyframeValue :: String ("#000000") , } , Keyframe { ticks : 22330i64 , value : KeyframeValue :: String ("#000000") , }] , } , Track { name : "minecraft:visual/sky_light_color" , ease : None , modifier : Some ("multiply") , keyframes : & [Keyframe { ticks : 730i64 , value : KeyframeValue :: String ("#ffffff") , } , Keyframe { ticks : 11270i64 , value : KeyframeValue :: String ("#ffffff") , } , Keyframe { ticks : 13140i64 , value : KeyframeValue :: String ("#7a7aff") , } , Keyframe { ticks : 22860i64 , value : KeyframeValue :: String ("#7a7aff") , }] , } , Track { name : "minecraft:visual/sky_light_factor" , ease : None , modifier : Some ("multiply") , keyframes : & [Keyframe { ticks : 730i64 , value : KeyframeValue :: Float (1f32) , } , Keyframe { ticks : 11270i64 , value : KeyframeValue :: Float (1f32) , } , Keyframe { ticks : 13140i64 , value : KeyframeValue :: Float (0.24f32) , } , Keyframe { ticks : 22860i64 , value : KeyframeValue :: Float (0.24f32) , }] , } , Track { name : "minecraft:visual/star_angle" , ease : Some (Ease :: CubicBezier ([0.362f32 , 0.241f32 , 0.638f32 , 0.759f32])) , modifier : None , keyframes : & [Keyframe { ticks : 6000i64 , value : KeyframeValue :: Float (360f32) , } , Keyframe { ticks : 6000i64 , value : KeyframeValue :: Float (0f32) , }] , } , Track { name : "minecraft:visual/star_brightness" , ease : None , modifier : Some ("maximum") , keyframes : & [Keyframe { ticks : 92i64 , value : KeyframeValue :: Float (0.037f32) , } , Keyframe { ticks : 627i64 , value : KeyframeValue :: Float (0f32) , } , Keyframe { ticks : 11373i64 , value : KeyframeValue :: Float (0f32) , } , Keyframe { ticks : 11732i64 , value : KeyframeValue :: Float (0.016f32) , } , Keyframe { ticks : 11959i64 , value : KeyframeValue :: Float (0.044f32) , } , Keyframe { ticks : 12399i64 , value : KeyframeValue :: Float (0.143f32) , } , Keyframe { ticks : 12729i64 , value : KeyframeValue :: Float (0.258f32) , } , Keyframe { ticks : 13228i64 , value : KeyframeValue :: Float (0.5f32) , } , Keyframe { ticks : 22772i64 , value : KeyframeValue :: Float (0.5f32) , } , Keyframe { ticks : 23032i64 , value : KeyframeValue :: Float (0.364f32) , } , Keyframe { ticks : 23356i64 , value : KeyframeValue :: Float (0.225f32) , } , Keyframe { ticks : 23758i64 , value : KeyframeValue :: Float (0.101f32) , }] , } , Track { name : "minecraft:visual/sun_angle" , ease : Some (Ease :: CubicBezier ([0.362f32 , 0.241f32 , 0.638f32 , 0.759f32])) , modifier : None , keyframes : & [Keyframe { ticks : 6000i64 , value : KeyframeValue :: Float (360f32) , } , Keyframe { ticks : 6000i64 , value : KeyframeValue :: Float (0f32) , }] , } , Track { name : "minecraft:visual/sunrise_sunset_color" , ease : None , modifier : None , keyframes : & [Keyframe { ticks : 71i64 , value : KeyframeValue :: String ("#5fefa333") , } , Keyframe { ticks : 310i64 , value : KeyframeValue :: String ("#29f5ba33") , } , Keyframe { ticks : 565i64 , value : KeyframeValue :: String ("#06fbd433") , } , Keyframe { ticks : 730i64 , value : KeyframeValue :: String ("#00ffe533") , } , Keyframe { ticks : 11270i64 , value : KeyframeValue :: String ("#00ffe533") , } , Keyframe { ticks : 11397i64 , value : KeyframeValue :: String ("#04fcd833") , } , Keyframe { ticks : 11522i64 , value : KeyframeValue :: String ("#0ff9cb33") , } , Keyframe { ticks : 11690i64 , value : KeyframeValue :: String ("#29f5ba33") , } , Keyframe { ticks : 11929i64 , value : KeyframeValue :: String ("#5fefa333") , } , Keyframe { ticks : 12243i64 , value : KeyframeValue :: String ("#b1e78733") , } , Keyframe { ticks : 12358i64 , value : KeyframeValue :: String ("#cce47e33") , } , Keyframe { ticks : 12512i64 , value : KeyframeValue :: String ("#e9e07233") , } , Keyframe { ticks : 12613i64 , value : KeyframeValue :: String ("#f6dd6b33") , } , Keyframe { ticks : 12732i64 , value : KeyframeValue :: String ("#feda6333") , } , Keyframe { ticks : 12841i64 , value : KeyframeValue :: String ("#fed75c33") , } , Keyframe { ticks : 13035i64 , value : KeyframeValue :: String ("#ecd25133") , } , Keyframe { ticks : 13252i64 , value : KeyframeValue :: String ("#c1cc4733") , } , Keyframe { ticks : 13775i64 , value : KeyframeValue :: String ("#36be3733") , } , Keyframe { ticks : 13888i64 , value : KeyframeValue :: String ("#1fbb3533") , } , Keyframe { ticks : 14039i64 , value : KeyframeValue :: String ("#09b73333") , } , Keyframe { ticks : 14192i64 , value : KeyframeValue :: String ("#00b33333") , } , Keyframe { ticks : 21807i64 , value : KeyframeValue :: String ("#00b23333") , } , Keyframe { ticks : 21961i64 , value : KeyframeValue :: String ("#09b73333") , } , Keyframe { ticks : 22112i64 , value : KeyframeValue :: String ("#1fbb3533") , } , Keyframe { ticks : 22225i64 , value : KeyframeValue :: String ("#36be3733") , } , Keyframe { ticks : 22748i64 , value : KeyframeValue :: String ("#c1cc4733") , } , Keyframe { ticks : 22965i64 , value : KeyframeValue :: String ("#ecd25133") , } , Keyframe { ticks : 23159i64 , value : KeyframeValue :: String ("#fed75c33") , } , Keyframe { ticks : 23272i64 , value : KeyframeValue :: String ("#feda6333") , } , Keyframe { ticks : 23488i64 , value : KeyframeValue :: String ("#e9e07233") , } , Keyframe { ticks : 23642i64 , value : KeyframeValue :: String ("#cce47e33") , } , Keyframe { ticks : 23757i64 , value : KeyframeValue :: String ("#b1e78733") , }] , }] , time_markers : & [TimeMarker { key : Identifier :: new_static ("minecraft" , "day") , ticks : 1000i32 , show_in_commands : Some (true) , } , TimeMarker { key : Identifier :: new_static ("minecraft" , "midnight") , ticks : 18000i32 , show_in_commands : Some (true) , } , TimeMarker { key : Identifier :: new_static ("minecraft" , "night") , ticks : 13000i32 , show_in_commands : Some (true) , } , TimeMarker { key : Identifier :: new_static ("minecraft" , "noon") , ticks : 6000i32 , show_in_commands : Some (true) , } , TimeMarker { key : Identifier :: new_static ("minecraft" , "roll_village_siege") , ticks : 18000i32 , show_in_commands : None , } , TimeMarker { key : Identifier :: new_static ("minecraft" , "wake_up_from_sleep") , ticks : 0i32 , show_in_commands : None , }] , } ; pub static EARLY_GAME : Timeline = Timeline { key : Identifier :: vanilla_static ("early_game") , clock : & crate :: vanilla_world_clocks :: OVERWORLD , period_ticks : None , tracks : & [Track { name : "minecraft:gameplay/can_pillager_patrol_spawn" , ease : None , modifier : Some ("and") , keyframes : & [Keyframe { ticks : 0i64 , value : KeyframeValue :: Bool (false) , } , Keyframe { ticks : 120000i64 , value : KeyframeValue :: Bool (true) , }] , }] , time_markers : & [] , } ; pub fn register_timelines (registry : & mut TimelineRegistry) { registry . register (& VILLAGER_SCHEDULE) ; registry . register (& MOON) ; registry . register (& DAY) ; registry . register (& EARLY_GAME) ; }