minecraft-src/net/minecraft/world/flag/FeatureFlags.java
2025-07-04 03:15:13 +03:00

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;
}
}