Interface MinecraftDayTime
-
public interface MinecraftDayTime
Represents an in-game time of day.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
MinecraftDayTime.Factory
CreatesMinecraftDayTime
objects.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description MinecraftDayTime
add(int days, int hour, int minute)
Adds the time given by the arguments and returns a new object with the result.MinecraftDayTime
add(Ticks ticks)
Adds the time given by the providedTicks
object and returns a new object with the result.java.time.Duration
asInGameDuration()
Returns aDuration
that represents in-game time from the minecraft epoch (so, for Day 2 at 12:30pm will return a duration of 1 day, 6 hours and 30 minutes).Ticks
asTicks()
Returns the number ofTicks
that have elapsed since the minecraft epoch.default java.time.Duration
asWallClockDuration(Engine engine)
Returns aDuration
that represents wall-clock time from the minecraft epoch for the givenEngine
.int
day()
The day this represents.int
hour()
The hour this represents.static MinecraftDayTime
minecraftEpoch()
AMinecraftDayTime
that represents the Minecraft Epoch, which is 6:00am on Day 1.int
minute()
The minute this represents.static MinecraftDayTime
of(int day, int hours, int minutes)
Creates aMinecraftDayTime
that corresponds to the given units of in-game time.static MinecraftDayTime
of(Engine engine, Ticks ticks)
Creates aMinecraftDayTime
based on the number ofTicks
elapsed since the Minecraft epoch (6:00am on Day 1) for the givenEngine
.static MinecraftDayTime
ofInGameDuration(Engine engine, java.time.Duration duration)
Creates aMinecraftDayTime
based on the in-game time since the Minecraft epoch (6:00am on Day 1) for the givenEngine
.static MinecraftDayTime
ofWallClockDuration(Engine engine, java.time.Duration duration)
Creates aMinecraftDayTime
that represents the world time if the world has been running for the suppliedDuration
in real world time under idealised conditions for the givenEngine
.MinecraftDayTime
subtract(int days, int hour, int minute)
Subtracts the time given by the arguments and returns a new object with the result.MinecraftDayTime
subtract(Ticks ticks)
Subtracts the time given by the providedTicks
object and returns a new object with the result.
-
-
-
Method Detail
-
minecraftEpoch
static MinecraftDayTime minecraftEpoch()
AMinecraftDayTime
that represents the Minecraft Epoch, which is 6:00am on Day 1.- Returns:
- The
MinecraftDayTime
-
ofInGameDuration
static MinecraftDayTime ofInGameDuration(Engine engine, java.time.Duration duration)
Creates aMinecraftDayTime
based on the in-game time since the Minecraft epoch (6:00am on Day 1) for the givenEngine
.For example, if the supplied
Duration
was 1 day, 3 hours and 40 minutes, this would correspond to an in game time of 9:40am on Day 2.In the case where the supplied
Duration
does not completely align with a validMinecraftDayTime
, the nearest valid time will be returned.- Parameters:
engine
- TheEngine
to use in calculating the day timeduration
- The duration since the Minecraft Epoch.- Returns:
- The
MinecraftDayTime
- Throws:
java.lang.IllegalArgumentException
- if the duration is negative
-
ofWallClockDuration
static MinecraftDayTime ofWallClockDuration(Engine engine, java.time.Duration duration)
Creates aMinecraftDayTime
that represents the world time if the world has been running for the suppliedDuration
in real world time under idealised conditions for the givenEngine
.For example, if the supplied
Duration
was 1 day, 3 hours and 40 minutes and each Minecraft day lasts 20 minutes in the vanilla game, this would correspond to 6:00am on day 84 (1 day, 3 hours and 40 minutes is 1660 minutes, which is 83 20-minute chunks).In the case where the supplied
Duration
does not completely align with a validMinecraftDayTime
, the nearest valid time will be returned.- Parameters:
engine
- TheEngine
to use in calculating the day timeduration
- The wall-clock duration- Returns:
- The
MinecraftDayTime
- Throws:
java.lang.IllegalArgumentException
- if the duration is negative
-
of
static MinecraftDayTime of(int day, int hours, int minutes)
Creates aMinecraftDayTime
that corresponds to the given units of in-game time.The parameters are subject to the following constraints:
day
must be positive;hours
is in 24-hour time, and so must be between 0 and 23, except on day 1, where it must be between 6 and 23; andminutes
must be between 0 and 59.
In the case where the supplied time does not completely align with a valid
MinecraftDayTime
, the nearest valid time will be returned.- Parameters:
day
- The day to set. Must be positive.hours
- The hour to set in 24 hour time.minutes
- The minute to set.- Returns:
- The
MinecraftDayTime
. - Throws:
java.lang.IllegalArgumentException
- if any of the listed constraints are violated.
-
of
static MinecraftDayTime of(Engine engine, Ticks ticks)
Creates aMinecraftDayTime
based on the number ofTicks
elapsed since the Minecraft epoch (6:00am on Day 1) for the givenEngine
.For example, if the supplied
Ticks
wasTicks.of(18000)
on the vanilla server, this would correspond to an in game time of 12:00am on Day 2 (18 hours after Minecraft epoch).- Parameters:
engine
- TheEngine
to calculate the time for.ticks
- TheTicks
since the Minecraft Epoch.- Returns:
- The
MinecraftDayTime
- Throws:
java.lang.IllegalArgumentException
- if the tick count is negative
-
day
int day()
The day this represents.- Returns:
- The day
-
hour
int hour()
The hour this represents.- Returns:
- The hour.
-
minute
int minute()
The minute this represents.- Returns:
- The minute.
-
add
MinecraftDayTime add(Ticks ticks)
Adds the time given by the providedTicks
object and returns a new object with the result.- Parameters:
ticks
- TheTicks
to add.- Returns:
- A new
MinecraftDayTime
-
add
MinecraftDayTime add(int days, int hour, int minute)
Adds the time given by the arguments and returns a new object with the result.- Parameters:
days
- The number of days to advancehour
- The number of hours to advance (between 0 and 23)minute
- The number of minutes to advance (between 0 and 59)- Returns:
- A new
MinecraftDayTime
- Throws:
java.lang.IllegalArgumentException
- if any of the arguments are negative.
-
subtract
MinecraftDayTime subtract(Ticks ticks)
Subtracts the time given by the providedTicks
object and returns a new object with the result.- Parameters:
ticks
- TheTicks
to subtract.- Returns:
- A new
MinecraftDayTime
- Throws:
java.lang.IllegalArgumentException
- if the result would be a negative time.
-
subtract
MinecraftDayTime subtract(int days, int hour, int minute)
Subtracts the time given by the arguments and returns a new object with the result.- Parameters:
days
- The number of days to advancehour
- The number of hours to advance (between 0 and 23)minute
- The number of minutes to advance (between 0 and 59)- Returns:
- A new
MinecraftDayTime
- Throws:
java.lang.IllegalArgumentException
- if any of the arguments are negative or the result would be a negative time.
-
asInGameDuration
java.time.Duration asInGameDuration()
Returns aDuration
that represents in-game time from the minecraft epoch (so, for Day 2 at 12:30pm will return a duration of 1 day, 6 hours and 30 minutes).- Returns:
- A
Duration
-
asWallClockDuration
default java.time.Duration asWallClockDuration(Engine engine)
Returns aDuration
that represents wall-clock time from the minecraft epoch for the givenEngine
. (For example, if this object represents Day 2 at 12:30pm, will return aDuration
of 25 minutes and 25 seconds for a vanilla minecraftServer
).- Parameters:
engine
- TheEngine
to calculate the time for.- Returns:
- A
Duration
-
-