mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-14 13:43:55 +01:00
Add moon phase API
This commit is contained in:
parent
5df47beccf
commit
cbfa49ddb6
2 changed files with 43 additions and 0 deletions
|
@ -0,0 +1,35 @@
|
|||
package io.papermc.paper.world;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.jspecify.annotations.NullMarked;
|
||||
|
||||
@NullMarked
|
||||
public enum MoonPhase {
|
||||
FULL_MOON(0L),
|
||||
WANING_GIBBOUS(1L),
|
||||
LAST_QUARTER(2L),
|
||||
WANING_CRESCENT(3L),
|
||||
NEW_MOON(4L),
|
||||
WAXING_CRESCENT(5L),
|
||||
FIRST_QUARTER(6L),
|
||||
WAXING_GIBBOUS(7L);
|
||||
|
||||
private final long day;
|
||||
|
||||
MoonPhase(final long day) {
|
||||
this.day = day;
|
||||
}
|
||||
|
||||
private static final Map<Long, MoonPhase> BY_DAY = new HashMap<>();
|
||||
|
||||
static {
|
||||
for (final MoonPhase phase : values()) {
|
||||
BY_DAY.put(phase.day, phase);
|
||||
}
|
||||
}
|
||||
|
||||
public static MoonPhase getPhase(final long day) {
|
||||
return BY_DAY.get(day % 8L);
|
||||
}
|
||||
}
|
|
@ -445,4 +445,12 @@ public interface RegionAccessor {
|
|||
*/
|
||||
@NotNull
|
||||
public <T extends Entity> T addEntity(@NotNull T entity);
|
||||
|
||||
// Paper start
|
||||
/**
|
||||
* @return the current moon phase at the current time in the world
|
||||
*/
|
||||
@NotNull
|
||||
io.papermc.paper.world.MoonPhase getMoonPhase();
|
||||
// Paper end
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue