diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/IntProperty.java b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/IntProperty.java index 36652cb58..bc85ec07b 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/IntProperty.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/base/IntProperty.java @@ -12,13 +12,13 @@ import java.util.Collection; import java.util.List; import com.dfsek.terra.api.block.state.properties.Property; -import com.dfsek.terra.api.util.generic.Construct; +import com.dfsek.terra.api.util.function.FunctionUtils; public interface IntProperty extends Property { static IntProperty of(String name, int min, int max) { return new IntProperty() { - private final Collection collection = Construct.construct(() -> { + private final Collection collection = FunctionUtils.construct(() -> { List ints = new ArrayList<>(); for(int i = min; i <= max; i++) { ints.add(i); diff --git a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/enums/Direction.java b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/enums/Direction.java index 258f46242..de8f82ddf 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/enums/Direction.java +++ b/common/api/src/main/java/com/dfsek/terra/api/block/state/properties/enums/Direction.java @@ -9,7 +9,7 @@ package com.dfsek.terra.api.block.state.properties.enums; import com.dfsek.seismic.type.Rotation; -import com.dfsek.terra.api.util.generic.Construct; +import com.dfsek.terra.api.util.function.FunctionUtils; public enum Direction { @@ -20,7 +20,7 @@ public enum Direction { UP(-1, 0, 1, 0), DOWN(-1, 0, -1, 0); - private static final Direction[] rotations = Construct.construct(() -> new Direction[]{ NORTH, SOUTH, EAST, WEST }); + private static final Direction[] rotations = FunctionUtils.construct(() -> new Direction[]{ NORTH, SOUTH, EAST, WEST }); private final int rotation; diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/function/FunctionUtils.java b/common/api/src/main/java/com/dfsek/terra/api/util/function/FunctionUtils.java index 8eefdd730..ad9fa94c9 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/function/FunctionUtils.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/function/FunctionUtils.java @@ -8,6 +8,7 @@ import org.jetbrains.annotations.NotNull; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Function; +import java.util.function.Supplier; public final class FunctionUtils { @@ -54,4 +55,8 @@ public final class FunctionUtils { } }; } + + public static T construct(Supplier in) { + return in.get(); + } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/Construct.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/Construct.java deleted file mode 100644 index 6fb7bba01..000000000 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/Construct.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020-2025 Polyhedral Development - * - * The Terra API is licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in the common/api directory. - */ - -package com.dfsek.terra.api.util.generic; - -import java.util.function.Supplier; - - -public final class Construct { - public static T construct(Supplier in) { - return in.get(); - } -} diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/Lazy.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/Lazy.java index 81d539f1d..e239a1f47 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/Lazy.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/generic/Lazy.java @@ -8,12 +8,10 @@ package com.dfsek.terra.api.util.generic; import com.dfsek.terra.api.util.generic.control.Monad; -import com.dfsek.terra.api.util.generic.data.Functor; import org.jetbrains.annotations.NotNull; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; import java.util.function.Supplier; @@ -31,6 +29,10 @@ public final class Lazy implements Monad> { return new Lazy<>(valueSupplier); } + public static Lazy of(T value) { + return new Lazy<>(() -> value); + } + public T value() { if(!got.compareAndExchange(false, true)) { value = valueSupplier.get();