44 lines
1.8 KiB
Java
44 lines
1.8 KiB
Java
package net.minecraft.world.flag;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.world.flag.FeatureFlagRegistry.Builder;
|
|
|
|
public class FeatureFlags {
|
|
public static final FeatureFlag VANILLA;
|
|
public static final FeatureFlag TRADE_REBALANCE;
|
|
public static final FeatureFlag REDSTONE_EXPERIMENTS;
|
|
public static final FeatureFlag MINECART_IMPROVEMENTS;
|
|
public static final FeatureFlagRegistry REGISTRY;
|
|
public static final Codec<FeatureFlagSet> CODEC;
|
|
public static final FeatureFlagSet VANILLA_SET;
|
|
public static final FeatureFlagSet DEFAULT_FLAGS;
|
|
|
|
public static String printMissingFlags(FeatureFlagSet enabledFeatures, FeatureFlagSet requestedFeatures) {
|
|
return printMissingFlags(REGISTRY, enabledFeatures, requestedFeatures);
|
|
}
|
|
|
|
public static String printMissingFlags(FeatureFlagRegistry registry, FeatureFlagSet enabledFeatures, FeatureFlagSet requestedFeatures) {
|
|
Set<ResourceLocation> set = registry.toNames(requestedFeatures);
|
|
Set<ResourceLocation> set2 = registry.toNames(enabledFeatures);
|
|
return (String)set.stream().filter(resourceLocation -> !set2.contains(resourceLocation)).map(ResourceLocation::toString).collect(Collectors.joining(", "));
|
|
}
|
|
|
|
public static boolean isExperimental(FeatureFlagSet set) {
|
|
return !set.isSubsetOf(VANILLA_SET);
|
|
}
|
|
|
|
static {
|
|
Builder builder = new Builder("main");
|
|
VANILLA = builder.createVanilla("vanilla");
|
|
TRADE_REBALANCE = builder.createVanilla("trade_rebalance");
|
|
REDSTONE_EXPERIMENTS = builder.createVanilla("redstone_experiments");
|
|
MINECART_IMPROVEMENTS = builder.createVanilla("minecart_improvements");
|
|
REGISTRY = builder.build();
|
|
CODEC = REGISTRY.codec();
|
|
VANILLA_SET = FeatureFlagSet.of(VANILLA);
|
|
DEFAULT_FLAGS = VANILLA_SET;
|
|
}
|
|
}
|