From c389354e941cadfbbd27ffafbcd42249c7599f66 Mon Sep 17 00:00:00 2001 From: WakelessSloth56 Date: Sat, 26 Nov 2022 21:06:02 +0800 Subject: [PATCH] feat(game.world): methods for getting mctime day,hour,minute --- .../arnicalib/game/world/MCTimeUtils.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/auioc/mcmod/arnicalib/game/world/MCTimeUtils.java b/src/main/java/org/auioc/mcmod/arnicalib/game/world/MCTimeUtils.java index 3d7cdb17..f7dd74d6 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/game/world/MCTimeUtils.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/game/world/MCTimeUtils.java @@ -27,12 +27,16 @@ public static int getDayTime(Level level) { return (int) (level.getDayTime() % 24000L); } - public static int[] formatDayTime(long rawDayTime) { - int dayTime = (int) (rawDayTime % 2147483647L); + private static int mod(long dayTime) { + return (int) (dayTime % 2147483647L); + } + + public static int[] formatDayTime(long dayTime) { + int dayTimeI = mod(dayTime); - int day = dayTime / TICKS_PER_DAY; + int day = dayTimeI / TICKS_PER_DAY; - int ticks = dayTime - day * TICKS_PER_DAY; + int ticks = dayTimeI - day * TICKS_PER_DAY; int hour = (int) (ticks / TICKS_PER_HOUR + 6) % 24; int min = (int) (ticks / TICKS_PER_MINUTE) % 60; int sec = (int) (ticks / TICKS_PER_SECOND) % 60; @@ -42,7 +46,15 @@ public static int[] formatDayTime(long rawDayTime) { } public static int getDay(long dayTime) { - return ((int) (dayTime % 2147483647L)) / TICKS_PER_DAY; + return mod(dayTime) / TICKS_PER_DAY; + } + + public static int getHour(long dayTime) { + return (mod(dayTime) / TICKS_PER_HOUR + 6) % 24; + } + + public static int getMinute(long dayTime) { + return (mod(dayTime) % TICKS_PER_HOUR) * 60 / TICKS_PER_HOUR; } }