minecraft-source/src/net/minecraft/world/level/block/state/StateHolder.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;
}
}