Skip to content

Commit a185421

Browse files
committed
updated to latest DT version
1 parent 0ca76b2 commit a185421

File tree

7 files changed

+77
-5
lines changed

7 files changed

+77
-5
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ configurations {
8787
dependencies {
8888
implementation "net.neoforged:neoforge:${neo_version}"
8989

90-
implementation 'curse.maven:dynamictrees-252818:6565776'
91-
//implementation ':dynamictrees-neoforge:1.21.1-1.5.0-BETA05'
90+
//implementation 'curse.maven:dynamictrees-252818:7201567'
91+
implementation 'com.dtteam.dynamictrees:dynamictrees-neoforge-1.21.1:1.5.0-BETA13'
9292

9393
runtimeOnly 'curse.maven:jade-324717:6291517'
9494
runtimeOnly "curse.maven:jei-238222:5846880"

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
mod_id=dynamictreesplus
33
mod_name=Dynamic Trees Plus
44
mod_license=MIT
5-
mod_version=1.3.0-BETA02
5+
mod_version=1.3.0-BETA03
66
version_type=beta
77
mod_group_id=com.dtteam.dynamictreesplus
88
mod_authors=Ferreusveritas, Max Hyper, Harley O'Connor

src/main/java/com/dtteam/dynamictreesplus/block/mushroom/MushroomBranchBlock.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.minecraft.world.level.block.Blocks;
3232
import net.minecraft.world.level.block.state.BlockState;
3333
import net.minecraft.world.level.storage.loot.LootTable;
34+
import org.apache.commons.lang3.tuple.Pair;
3435
import org.jetbrains.annotations.NotNull;
3536

3637
import javax.annotation.Nullable;
@@ -110,7 +111,8 @@ public BranchDestructionData destroyBranchFromNode(Level level, BlockPos cutPos,
110111
cutDir = Direction.DOWN;
111112
}
112113

113-
return new BranchDestructionData(species, stateMapper.getBranchConnectionMap(), destroyedLeaves, leavesDropsList, endPoints, volumeSum.getVolume(), cutPos, cutPos, cutDir, toolDir, trunkHeight);
114+
Pair<ResourceLocation, Integer> soilState = getCachedSoilState(level, cutPos.offset(cutDir.getNormal()), true);
115+
return new BranchDestructionData(species, stateMapper.getBranchConnectionMap(), destroyedLeaves, leavesDropsList, endPoints, volumeSum.getVolume(), cutPos, cutPos, cutDir, toolDir, trunkHeight, soilState);
114116
}
115117

116118
//Method is called destroy leaves but this one is to destroy mushroom caps

src/main/java/com/dtteam/dynamictreesplus/init/DTPRegistries.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@
2727
import com.dtteam.dynamictreesplus.tree.HugeMushroomFamily;
2828
import com.dtteam.dynamictreesplus.tree.HugeMushroomSpecies;
2929
import com.dtteam.dynamictreesplus.worldgen.canceller.CactusFeatureCanceller;
30+
import com.dtteam.dynamictreesplus.worldgen.canceller.MushroomFeatureCanceller;
3031
import net.minecraft.core.registries.BuiltInRegistries;
3132
import net.minecraft.world.level.block.CactusBlock;
33+
import net.minecraft.world.level.levelgen.feature.configurations.HugeMushroomFeatureConfiguration;
3234
import net.minecraft.world.phys.AABB;
3335
import net.minecraft.world.phys.shapes.Shapes;
3436
import net.minecraft.world.phys.shapes.VoxelShape;
@@ -103,6 +105,7 @@ public static void registerSpeciesType(final TypeRegistryEvent<Species> event) {
103105
public static void onFeatureCancellerRegistry(final RegistryEvent<FeatureCanceller> event) {
104106
if (event.isEntryOfType(FeatureCanceller.class)) {
105107
event.getRegistry().registerAll(new CactusFeatureCanceller<>(DynamicTreesPlus.location("cactus"), CactusBlock.class));
108+
event.getRegistry().registerAll(new MushroomFeatureCanceller<>(DynamicTreesPlus.location("mushroom"), HugeMushroomFeatureConfiguration.class));
106109
}
107110
}
108111

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.dtteam.dynamictreesplus.worldgen.canceller;
2+
3+
import com.dtteam.dynamictrees.api.worldgen.BiomePropertySelectors;
4+
import com.dtteam.dynamictrees.api.worldgen.FeatureCanceller;
5+
import net.minecraft.core.registries.BuiltInRegistries;
6+
import net.minecraft.resources.ResourceLocation;
7+
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
8+
import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration;
9+
import net.minecraft.world.level.levelgen.feature.configurations.RandomBooleanFeatureConfiguration;
10+
import net.minecraft.world.level.levelgen.feature.configurations.RandomFeatureConfiguration;
11+
12+
import java.util.stream.Stream;
13+
14+
15+
public class MushroomFeatureCanceller<T extends FeatureConfiguration> extends FeatureCanceller {
16+
private final Class<T> mushroomFeatureConfigClass;
17+
18+
public MushroomFeatureCanceller(final ResourceLocation registryName, final Class<T> mushroomFeatureConfigClass) {
19+
super(registryName);
20+
this.mushroomFeatureConfigClass = mushroomFeatureConfigClass;
21+
}
22+
23+
@Override
24+
public boolean shouldCancel(final ConfiguredFeature<?, ?> configuredFeature, final BiomePropertySelectors.NormalFeatureCancellation featureCancellations) {
25+
final ResourceLocation featureRegistryName = BuiltInRegistries.FEATURE.getKey(configuredFeature.feature());
26+
27+
if (featureRegistryName == null) {
28+
return false;
29+
}
30+
31+
// Mushrooms come in RandomBooleanFeatureConfiguration or RandomFeatureConfiguration
32+
if (configuredFeature.config() instanceof RandomFeatureConfiguration randomFeatureConfig) {
33+
return randomFeatureContainsConfigClass(randomFeatureConfig.getFeatures())
34+
&& featureCancellations.shouldCancelNamespace(featureRegistryName.getNamespace());
35+
}
36+
37+
if (configuredFeature.config() instanceof RandomBooleanFeatureConfiguration randomBoolConfig) {
38+
return randomFeatureContainsConfigClass(randomBoolConfig.getFeatures())
39+
&& featureCancellations.shouldCancelNamespace(featureRegistryName.getNamespace());
40+
}
41+
42+
//If it's not in a random feature config it may be alone.
43+
return this.mushroomFeatureConfigClass.isInstance(configuredFeature.config());
44+
}
45+
46+
private boolean randomFeatureContainsConfigClass(Stream<ConfiguredFeature<?, ?>> randomFeatureConfig) {
47+
Stream<FeatureConfiguration> stream = randomFeatureConfig.map(ConfiguredFeature::config);
48+
return stream.anyMatch(this.mushroomFeatureConfigClass::isInstance);
49+
}
50+
51+
}

src/main/resources/trees/dynamictreesplus/world_gen/default.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"apply": {
5555
"species": {
5656
"random": {
57-
"dark_oak": 24,
57+
"dark_oak": 20,
5858
"dynamictreesplus:red_mushroom": 2,
5959
"dynamictreesplus:brown_mushroom": 1
6060
}

src/main/resources/trees/dynamictreesplus/world_gen/feature_cancellers.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,21 @@
66
"type": "dynamictreesplus:cactus",
77
"namespace": "minecraft"
88
}
9+
},
10+
{
11+
"_comment": "Cancel regular mushroom generation from the mushroom fields biome.",
12+
"select": { "name": "minecraft:mushroom_fields" },
13+
"cancellers": {
14+
"type": "dynamictreesplus:mushroom",
15+
"namespace": "minecraft"
16+
}
17+
},
18+
{
19+
"_comment": "Cancel regular mushroom generation from dark forests.",
20+
"select": { "name": "minecraft:dark_forest" },
21+
"cancellers": {
22+
"types": ["dynamictreesplus:mushroom", "tree"],
23+
"namespace": "minecraft"
24+
}
925
}
1026
]

0 commit comments

Comments
 (0)