76 lines
4.1 KiB
Java
76 lines
4.1 KiB
Java
package net.minecraft.world.level.levelgen.feature.configurations;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder.Instance;
|
|
import net.minecraft.core.Holder;
|
|
import net.minecraft.core.registries.Registries;
|
|
import net.minecraft.tags.TagKey;
|
|
import net.minecraft.world.level.block.Block;
|
|
import net.minecraft.world.level.levelgen.blockpredicates.BlockPredicate;
|
|
import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider;
|
|
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
|
|
|
public class RootSystemConfiguration implements FeatureConfiguration {
|
|
public static final Codec<RootSystemConfiguration> CODEC = RecordCodecBuilder.create(
|
|
p_198371_ -> p_198371_.group(
|
|
PlacedFeature.CODEC.fieldOf("feature").forGetter(p_204840_ -> p_204840_.treeFeature),
|
|
Codec.intRange(1, 64).fieldOf("required_vertical_space_for_tree").forGetter(p_161151_ -> p_161151_.requiredVerticalSpaceForTree),
|
|
Codec.intRange(1, 64).fieldOf("root_radius").forGetter(p_161149_ -> p_161149_.rootRadius),
|
|
TagKey.hashedCodec(Registries.BLOCK).fieldOf("root_replaceable").forGetter(p_204838_ -> p_204838_.rootReplaceable),
|
|
BlockStateProvider.CODEC.fieldOf("root_state_provider").forGetter(p_161145_ -> p_161145_.rootStateProvider),
|
|
Codec.intRange(1, 256).fieldOf("root_placement_attempts").forGetter(p_161143_ -> p_161143_.rootPlacementAttempts),
|
|
Codec.intRange(1, 4096).fieldOf("root_column_max_height").forGetter(p_161141_ -> p_161141_.rootColumnMaxHeight),
|
|
Codec.intRange(1, 64).fieldOf("hanging_root_radius").forGetter(p_161139_ -> p_161139_.hangingRootRadius),
|
|
Codec.intRange(0, 16).fieldOf("hanging_roots_vertical_span").forGetter(p_161137_ -> p_161137_.hangingRootsVerticalSpan),
|
|
BlockStateProvider.CODEC.fieldOf("hanging_root_state_provider").forGetter(p_161135_ -> p_161135_.hangingRootStateProvider),
|
|
Codec.intRange(1, 256).fieldOf("hanging_root_placement_attempts").forGetter(p_161133_ -> p_161133_.hangingRootPlacementAttempts),
|
|
Codec.intRange(1, 64).fieldOf("allowed_vertical_water_for_tree").forGetter(p_161131_ -> p_161131_.allowedVerticalWaterForTree),
|
|
BlockPredicate.CODEC.fieldOf("allowed_tree_position").forGetter(p_198373_ -> p_198373_.allowedTreePosition)
|
|
)
|
|
.apply(p_198371_, RootSystemConfiguration::new)
|
|
);
|
|
public final Holder<PlacedFeature> treeFeature;
|
|
public final int requiredVerticalSpaceForTree;
|
|
public final int rootRadius;
|
|
public final TagKey<Block> rootReplaceable;
|
|
public final BlockStateProvider rootStateProvider;
|
|
public final int rootPlacementAttempts;
|
|
public final int rootColumnMaxHeight;
|
|
public final int hangingRootRadius;
|
|
public final int hangingRootsVerticalSpan;
|
|
public final BlockStateProvider hangingRootStateProvider;
|
|
public final int hangingRootPlacementAttempts;
|
|
public final int allowedVerticalWaterForTree;
|
|
public final BlockPredicate allowedTreePosition;
|
|
|
|
public RootSystemConfiguration(
|
|
Holder<PlacedFeature> p_204824_,
|
|
int p_204825_,
|
|
int p_204826_,
|
|
TagKey<Block> p_204827_,
|
|
BlockStateProvider p_204828_,
|
|
int p_204829_,
|
|
int p_204830_,
|
|
int p_204831_,
|
|
int p_204832_,
|
|
BlockStateProvider p_204833_,
|
|
int p_204834_,
|
|
int p_204835_,
|
|
BlockPredicate p_204836_
|
|
) {
|
|
this.treeFeature = p_204824_;
|
|
this.requiredVerticalSpaceForTree = p_204825_;
|
|
this.rootRadius = p_204826_;
|
|
this.rootReplaceable = p_204827_;
|
|
this.rootStateProvider = p_204828_;
|
|
this.rootPlacementAttempts = p_204829_;
|
|
this.rootColumnMaxHeight = p_204830_;
|
|
this.hangingRootRadius = p_204831_;
|
|
this.hangingRootsVerticalSpan = p_204832_;
|
|
this.hangingRootStateProvider = p_204833_;
|
|
this.hangingRootPlacementAttempts = p_204834_;
|
|
this.allowedVerticalWaterForTree = p_204835_;
|
|
this.allowedTreePosition = p_204836_;
|
|
}
|
|
} |