mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-27 06:20:05 +00:00
move Construct to FunctionUtils
This commit is contained in:
1 parent
e706ef89fc
commit
df46c617f2
5 files changed
+13
-23
No files matched your search
+2
-2
@@ -12,13 +12,13 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.dfsek.terra.api.block.state.properties.Property;
|
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<Integer> {
|
public interface IntProperty extends Property<Integer> {
|
||||||
static IntProperty of(String name, int min, int max) {
|
static IntProperty of(String name, int min, int max) {
|
||||||
return new IntProperty() {
|
return new IntProperty() {
|
||||||
private final Collection<Integer> collection = Construct.construct(() -> {
|
private final Collection<Integer> collection = FunctionUtils.construct(() -> {
|
||||||
List<Integer> ints = new ArrayList<>();
|
List<Integer> ints = new ArrayList<>();
|
||||||
for(int i = min; i <= max; i++) {
|
for(int i = min; i <= max; i++) {
|
||||||
ints.add(i);
|
ints.add(i);
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ package com.dfsek.terra.api.block.state.properties.enums;
|
|||||||
|
|
||||||
import com.dfsek.seismic.type.Rotation;
|
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 {
|
public enum Direction {
|
||||||
@@ -20,7 +20,7 @@ public enum Direction {
|
|||||||
UP(-1, 0, 1, 0),
|
UP(-1, 0, 1, 0),
|
||||||
DOWN(-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;
|
private final int rotation;
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
|
||||||
public final class FunctionUtils {
|
public final class FunctionUtils {
|
||||||
@@ -54,4 +55,8 @@ public final class FunctionUtils {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> T construct(Supplier<T> in) {
|
||||||
|
return in.get();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -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> T construct(Supplier<T> in) {
|
|
||||||
return in.get();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,12 +8,10 @@
|
|||||||
package com.dfsek.terra.api.util.generic;
|
package com.dfsek.terra.api.util.generic;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.generic.control.Monad;
|
import com.dfsek.terra.api.util.generic.control.Monad;
|
||||||
import com.dfsek.terra.api.util.generic.data.Functor;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@@ -31,6 +29,10 @@ public final class Lazy<T> implements Monad<T, Lazy<?>> {
|
|||||||
return new Lazy<>(valueSupplier);
|
return new Lazy<>(valueSupplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> Lazy<T> of(T value) {
|
||||||
|
return new Lazy<>(() -> value);
|
||||||
|
}
|
||||||
|
|
||||||
public T value() {
|
public T value() {
|
||||||
if(!got.compareAndExchange(false, true)) {
|
if(!got.compareAndExchange(false, true)) {
|
||||||
value = valueSupplier.get();
|
value = valueSupplier.get();
|
||||||
|
|||||||
Reference in new issue
Block a user