mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-28 19:29:07 +00:00
more clean up
This commit is contained in:
@@ -28,15 +28,15 @@ public enum MergeLevel {
|
||||
|
||||
private final int level;
|
||||
|
||||
MergeLevel(int level) {
|
||||
MergeLevel(final int level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public boolean atLeast(MergeLevel level) {
|
||||
public final boolean atLeast(MergeLevel level) {
|
||||
return this.getLevel() >= level.getLevel();
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
public final int getLevel() {
|
||||
return this.level;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import org.jspecify.annotations.NullMarked;
|
||||
public interface Mergeable {
|
||||
MergeLevel getMergeLevel();
|
||||
|
||||
void setMergeLevel(MergeLevel level);
|
||||
void setMergeLevel(final MergeLevel mergeLevel);
|
||||
|
||||
int getStacked();
|
||||
|
||||
|
||||
@@ -4,45 +4,47 @@ import org.jspecify.annotations.NullMarked;
|
||||
|
||||
@NullMarked
|
||||
public interface VisibilitySettings {
|
||||
default boolean isEnabled(VisibilityType type) {
|
||||
default boolean isEnabled(final VisibilityType type) {
|
||||
return this.get(type) == VisibilityState.ON;
|
||||
}
|
||||
|
||||
default boolean isDisabled(VisibilityType type) {
|
||||
default boolean isDisabled(final VisibilityType type) {
|
||||
return this.get(type) == VisibilityState.OFF;
|
||||
}
|
||||
|
||||
default boolean isToggled(VisibilityType type) {
|
||||
default boolean isToggled(final VisibilityType type) {
|
||||
return !type.isDefault(this.get(type));
|
||||
}
|
||||
|
||||
default VisibilityState toggle(VisibilityType type) {
|
||||
VisibilityState state = this.get(type);
|
||||
default VisibilityState toggle(final VisibilityType type) {
|
||||
final VisibilityState state = this.get(type);
|
||||
return this.set(type, toggleState(state));
|
||||
}
|
||||
|
||||
default VisibilityState cycle(VisibilityType type) {
|
||||
VisibilityState state = this.get(type);
|
||||
default VisibilityState cycle(final VisibilityType type) {
|
||||
final VisibilityState state = this.get(type);
|
||||
return this.set(type, type.cycle(state));
|
||||
}
|
||||
|
||||
default void toggleAll() {
|
||||
VisibilityState state = this.currentState();
|
||||
VisibilityState newState = toggleState(state);
|
||||
for (VisibilityType type : VisibilityTypes.types()) {
|
||||
final VisibilityState state = this.currentState();
|
||||
final VisibilityState newState = toggleState(state);
|
||||
for (final VisibilityType type : VisibilityTypes.types()) {
|
||||
this.set(type, newState);
|
||||
}
|
||||
}
|
||||
|
||||
VisibilityState get(VisibilityType type);
|
||||
VisibilityState get(final VisibilityType type);
|
||||
|
||||
VisibilityState set(VisibilityType type, VisibilityState state);
|
||||
VisibilityState set(final VisibilityType type, final VisibilityState state);
|
||||
|
||||
VisibilityState currentState();
|
||||
|
||||
boolean playerModified();
|
||||
|
||||
static VisibilityState toggleState(VisibilityState state) {
|
||||
return state != VisibilityState.OFF ? VisibilityState.OFF : VisibilityState.ON;
|
||||
static VisibilityState toggleState(final VisibilityState state) {
|
||||
return state != VisibilityState.OFF
|
||||
? VisibilityState.OFF
|
||||
: VisibilityState.ON;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package me.samsuik.sakura.player.visibility;
|
||||
|
||||
/**
|
||||
* The visibility state of a {@link VisibilityType}.
|
||||
*/
|
||||
public enum VisibilityState {
|
||||
ON, MODIFIED, MINIMAL, OFF;
|
||||
}
|
||||
|
||||
@@ -9,27 +9,27 @@ public record VisibilityType(String key, ImmutableList<VisibilityState> states)
|
||||
return this.states.getFirst();
|
||||
}
|
||||
|
||||
public boolean isDefault(VisibilityState state) {
|
||||
public boolean isDefault(final VisibilityState state) {
|
||||
return state == this.getDefault();
|
||||
}
|
||||
|
||||
public VisibilityState cycle(VisibilityState state) {
|
||||
int index = this.states.indexOf(state);
|
||||
int next = (index + 1) % this.states.size();
|
||||
public VisibilityState cycle(final VisibilityState state) {
|
||||
final int index = this.states.indexOf(state);
|
||||
final int next = (index + 1) % this.states.size();
|
||||
return this.states.get(next);
|
||||
}
|
||||
|
||||
public static VisibilityType from(String key, boolean minimal) {
|
||||
public static VisibilityType from(final String key, final boolean minimal) {
|
||||
return new VisibilityType(key, states(minimal));
|
||||
}
|
||||
|
||||
private static ImmutableList<VisibilityState> states(boolean minimal) {
|
||||
ImmutableList.Builder<VisibilityState> listBuilder = ImmutableList.builder();
|
||||
listBuilder.add(VisibilityState.ON);
|
||||
private static ImmutableList<VisibilityState> states(final boolean minimal) {
|
||||
final ImmutableList.Builder<VisibilityState> states = ImmutableList.builder();
|
||||
states.add(VisibilityState.ON);
|
||||
if (minimal) {
|
||||
listBuilder.add(VisibilityState.MINIMAL);
|
||||
states.add(VisibilityState.MINIMAL);
|
||||
}
|
||||
listBuilder.add(VisibilityState.OFF);
|
||||
return listBuilder.build();
|
||||
states.add(VisibilityState.OFF);
|
||||
return states.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,22 +10,19 @@ import java.util.List;
|
||||
public final class VisibilityTypes {
|
||||
private static final List<VisibilityType> TYPES = new ArrayList<>();
|
||||
|
||||
public static final VisibilityType TNT = register(create("tnt", true));
|
||||
public static final VisibilityType SAND = register(create("sand", true));
|
||||
public static final VisibilityType EXPLOSIONS = register(create("explosions", true));
|
||||
public static final VisibilityType SPAWNERS = register(create("spawners", false));
|
||||
public static final VisibilityType PISTONS = register(create("pistons", false));
|
||||
public static final VisibilityType TNT = create("tnt", true);
|
||||
public static final VisibilityType SAND = create("sand", true);
|
||||
public static final VisibilityType EXPLOSIONS = create("explosions", true);
|
||||
public static final VisibilityType SPAWNERS = create("spawners", false);
|
||||
public static final VisibilityType PISTONS = create("pistons", false);
|
||||
|
||||
public static ImmutableList<VisibilityType> types() {
|
||||
return ImmutableList.copyOf(TYPES);
|
||||
}
|
||||
|
||||
private static VisibilityType create(String key, boolean minimal) {
|
||||
return VisibilityType.from(key, minimal);
|
||||
}
|
||||
|
||||
private static VisibilityType register(VisibilityType type) {
|
||||
TYPES.add(type);
|
||||
return type;
|
||||
private static VisibilityType create(final String key, final boolean minimal) {
|
||||
final VisibilityType newVisibilityType = VisibilityType.from(key, minimal);
|
||||
TYPES.add(newVisibilityType);
|
||||
return newVisibilityType;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user