9
0
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:
Samsuik
2025-09-25 00:18:10 +01:00
parent 65bc3daa96
commit 7dfd66c10c
142 changed files with 1737 additions and 1619 deletions

View File

@@ -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;
}
}

View File

@@ -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();

View File

@@ -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;
}
}

View File

@@ -1,5 +1,8 @@
package me.samsuik.sakura.player.visibility;
/**
* The visibility state of a {@link VisibilityType}.
*/
public enum VisibilityState {
ON, MODIFIED, MINIMAL, OFF;
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}