Add moon phase API
This commit is contained in:
@@ -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
|
@NotNull
|
||||||
public <T extends Entity> T addEntity(@NotNull T entity);
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user