31 lines
1.3 KiB
Java
31 lines
1.3 KiB
Java
package net.minecraft.world.level.block.state;
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
import java.util.Optional;
|
|
import com.google.common.collect.ImmutableMap;
|
|
import net.minecraft.world.level.block.state.properties.Property;
|
|
import org.apache.logging.log4j.Logger;
|
|
|
|
public interface StateHolder<C> {
|
|
public static final Logger LOGGER = LogManager.getLogger();
|
|
|
|
<T extends Comparable<T>> T getValue(final Property<T> bzj);
|
|
|
|
<T extends Comparable<T>, V extends T> C setValue(final Property<T> bzj, final V comparable);
|
|
|
|
ImmutableMap<Property<?>, Comparable<?>> getValues();
|
|
|
|
default <T extends Comparable<T>> String getName(final Property<T> bzj, final Comparable<?> comparable) {
|
|
return bzj.getName((T)comparable);
|
|
}
|
|
|
|
default <S extends StateHolder<S>, T extends Comparable<T>> S setValueHelper(final S byi, final Property<T> bzj, final String string3, final String string4, final String string5) {
|
|
final Optional<T> optional6 = bzj.getValue(string5);
|
|
if (optional6.isPresent()) {
|
|
return byi.<T, T>setValue(bzj, optional6.get());
|
|
}
|
|
StateHolder.LOGGER.warn("Unable to read property: {} with value: {} for input: {}", string3, string5, string4);
|
|
return byi;
|
|
}
|
|
}
|