├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md └── workflows │ ├── gradle.yml │ └── publish.yml ├── .gitignore ├── LICENSE ├── README.md ├── build.gradle.kts ├── buildSrc └── build.gradle.kts ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── header.png ├── settings.gradle.kts └── src ├── generated └── resources │ ├── .cache │ ├── 06c8634dbcb9eb0304a95e1ace9f06130b969502 │ ├── 103d9f3f36b01595f1aa5172191e60eff02e6924 │ ├── 59eb3dbb5f86130e09b3c62d89b9525ee01cf52d │ ├── 82dbd4df3226a8f2ebd864eec8c96cc5d0540266 │ ├── a4c9410e691fbe48aa70e5a1ff196f840e0179cc │ ├── ae7a3ddbbbde6f36e12a813e147261b681a4084e │ └── c622617f6fabf890a00b9275cd5f643584a8a2c8 │ ├── assets │ └── dynamictrees │ │ ├── blockstates │ │ ├── acacia_branch.json │ │ ├── acacia_leaves.json │ │ ├── acacia_sapling.json │ │ ├── apple_oak_sapling.json │ │ ├── azalea_leaves.json │ │ ├── azalea_sapling.json │ │ ├── birch_branch.json │ │ ├── birch_leaves.json │ │ ├── birch_sapling.json │ │ ├── cherry_branch.json │ │ ├── cherry_leaves.json │ │ ├── cherry_sapling.json │ │ ├── cocoa_sapling.json │ │ ├── crimson_branch.json │ │ ├── crimson_sapling.json │ │ ├── crimson_wart.json │ │ ├── dark_oak_branch.json │ │ ├── dark_oak_leaves.json │ │ ├── dark_oak_root.json │ │ ├── dark_oak_sapling.json │ │ ├── flowering_azalea_leaves.json │ │ ├── jungle_branch.json │ │ ├── jungle_leaves.json │ │ ├── jungle_root.json │ │ ├── jungle_sapling.json │ │ ├── jungle_undergrowth_leaves.json │ │ ├── mangrove_branch.json │ │ ├── mangrove_leaves.json │ │ ├── mangrove_roots.json │ │ ├── mangrove_sapling.json │ │ ├── oak_branch.json │ │ ├── oak_leaves.json │ │ ├── oak_sapling.json │ │ ├── oak_undergrowth_leaves.json │ │ ├── rooty_brown_terracotta.json │ │ ├── rooty_clay.json │ │ ├── rooty_coarse_dirt.json │ │ ├── rooty_crimson_nylium.json │ │ ├── rooty_dirt.json │ │ ├── rooty_end_stone.json │ │ ├── rooty_grass_block.json │ │ ├── rooty_gravel.json │ │ ├── rooty_light_gray_terracotta.json │ │ ├── rooty_mangrove_aerial_roots.json │ │ ├── rooty_moss.json │ │ ├── rooty_moss_block.json │ │ ├── rooty_mud.json │ │ ├── rooty_mycelium.json │ │ ├── rooty_netherrack.json │ │ ├── rooty_orange_terracotta.json │ │ ├── rooty_podzol.json │ │ ├── rooty_red_sand.json │ │ ├── rooty_red_terracotta.json │ │ ├── rooty_rooted_dirt.json │ │ ├── rooty_sand.json │ │ ├── rooty_soul_sand.json │ │ ├── rooty_soul_soil.json │ │ ├── rooty_terracotta.json │ │ ├── rooty_warped_nylium.json │ │ ├── rooty_water.json │ │ ├── rooty_white_terracotta.json │ │ ├── rooty_yellow_terracotta.json │ │ ├── spruce_branch.json │ │ ├── spruce_leaves.json │ │ ├── spruce_sapling.json │ │ ├── stripped_acacia_branch.json │ │ ├── stripped_birch_branch.json │ │ ├── stripped_cherry_branch.json │ │ ├── stripped_crimson_branch.json │ │ ├── stripped_dark_oak_branch.json │ │ ├── stripped_jungle_branch.json │ │ ├── stripped_mangrove_branch.json │ │ ├── stripped_oak_branch.json │ │ ├── stripped_spruce_branch.json │ │ ├── stripped_warped_branch.json │ │ ├── swamp_oak_sapling.json │ │ ├── tall_birch_sapling.json │ │ ├── warped_branch.json │ │ ├── warped_sapling.json │ │ └── warped_wart.json │ │ ├── lang │ │ └── en_us.json │ │ └── models │ │ ├── block │ │ ├── acacia_branch.json │ │ ├── birch_branch.json │ │ ├── cherry_branch.json │ │ ├── crimson_branch.json │ │ ├── dark_oak_branch.json │ │ ├── dark_oak_root.json │ │ ├── jungle_branch.json │ │ ├── jungle_root.json │ │ ├── mangrove_branch.json │ │ ├── mangrove_roots.json │ │ ├── mangrove_roots_filled.json │ │ ├── oak_branch.json │ │ ├── rooty_mangrove_aerial_roots_radius1.json │ │ ├── rooty_mangrove_aerial_roots_radius2.json │ │ ├── rooty_mangrove_aerial_roots_radius3.json │ │ ├── rooty_mangrove_aerial_roots_radius4.json │ │ ├── rooty_mangrove_aerial_roots_radius5.json │ │ ├── rooty_mangrove_aerial_roots_radius6.json │ │ ├── rooty_mangrove_aerial_roots_radius7.json │ │ ├── rooty_mangrove_aerial_roots_radius8.json │ │ ├── saplings │ │ │ ├── acacia.json │ │ │ ├── apple_oak.json │ │ │ ├── azalea.json │ │ │ ├── birch.json │ │ │ ├── cherry.json │ │ │ ├── cocoa.json │ │ │ ├── crimson.json │ │ │ ├── dark_oak.json │ │ │ ├── jungle.json │ │ │ ├── mangrove.json │ │ │ ├── oak.json │ │ │ ├── spruce.json │ │ │ ├── swamp_oak.json │ │ │ ├── tall_birch.json │ │ │ └── warped.json │ │ ├── spruce_branch.json │ │ ├── stripped_acacia_branch.json │ │ ├── stripped_birch_branch.json │ │ ├── stripped_cherry_branch.json │ │ ├── stripped_crimson_branch.json │ │ ├── stripped_dark_oak_branch.json │ │ ├── stripped_jungle_branch.json │ │ ├── stripped_mangrove_branch.json │ │ ├── stripped_oak_branch.json │ │ ├── stripped_spruce_branch.json │ │ ├── stripped_warped_branch.json │ │ └── warped_branch.json │ │ └── item │ │ ├── acacia_branch.json │ │ ├── acacia_seed.json │ │ ├── apple_oak_seed.json │ │ ├── azalea_seed.json │ │ ├── birch_branch.json │ │ ├── birch_seed.json │ │ ├── cherry_branch.json │ │ ├── cherry_seed.json │ │ ├── cocoa_seed.json │ │ ├── crimson_branch.json │ │ ├── crimson_seed.json │ │ ├── dark_oak_branch.json │ │ ├── dark_oak_seed.json │ │ ├── jungle_branch.json │ │ ├── jungle_seed.json │ │ ├── mangrove_branch.json │ │ ├── mangrove_roots.json │ │ ├── mangrove_seed.json │ │ ├── oak_branch.json │ │ ├── oak_seed.json │ │ ├── spruce_branch.json │ │ ├── spruce_seed.json │ │ ├── warped_branch.json │ │ └── warped_seed.json │ └── data │ ├── dynamictrees │ ├── loot_tables │ │ ├── blocks │ │ │ ├── acacia_leaves.json │ │ │ ├── apple.json │ │ │ ├── azalea_leaves.json │ │ │ ├── birch_leaves.json │ │ │ ├── cherry_leaves.json │ │ │ ├── cocoa.json │ │ │ ├── crimson_wart.json │ │ │ ├── dark_oak_leaves.json │ │ │ ├── flowering_azalea_leaves.json │ │ │ ├── jungle_leaves.json │ │ │ ├── jungle_undergrowth_leaves.json │ │ │ ├── mangrove_leaves.json │ │ │ ├── oak_leaves.json │ │ │ ├── oak_undergrowth_leaves.json │ │ │ ├── spruce_leaves.json │ │ │ └── warped_wart.json │ │ └── trees │ │ │ ├── branches │ │ │ ├── acacia.json │ │ │ ├── birch.json │ │ │ ├── cherry.json │ │ │ ├── crimson.json │ │ │ ├── dark_oak.json │ │ │ ├── jungle.json │ │ │ ├── mangrove.json │ │ │ ├── oak.json │ │ │ ├── spruce.json │ │ │ ├── stripped_acacia.json │ │ │ ├── stripped_birch.json │ │ │ ├── stripped_cherry.json │ │ │ ├── stripped_crimson.json │ │ │ ├── stripped_dark_oak.json │ │ │ ├── stripped_jungle.json │ │ │ ├── stripped_mangrove.json │ │ │ ├── stripped_oak.json │ │ │ ├── stripped_spruce.json │ │ │ ├── stripped_warped.json │ │ │ └── warped.json │ │ │ ├── leaves │ │ │ ├── acacia.json │ │ │ ├── azalea.json │ │ │ ├── birch.json │ │ │ ├── cherry.json │ │ │ ├── crimson.json │ │ │ ├── dark_oak.json │ │ │ ├── flowering_azalea.json │ │ │ ├── jungle.json │ │ │ ├── jungle_undergrowth.json │ │ │ ├── mangrove.json │ │ │ ├── oak.json │ │ │ ├── oak_undergrowth.json │ │ │ ├── spruce.json │ │ │ └── warped.json │ │ │ ├── roots │ │ │ └── mangrove.json │ │ │ └── voluntary │ │ │ ├── acacia.json │ │ │ ├── apple_oak.json │ │ │ ├── azalea.json │ │ │ ├── birch.json │ │ │ ├── cherry.json │ │ │ ├── cocoa.json │ │ │ ├── crimson.json │ │ │ ├── dark_oak.json │ │ │ ├── jungle.json │ │ │ ├── mangrove.json │ │ │ ├── oak.json │ │ │ ├── spruce.json │ │ │ └── warped.json │ ├── tags │ │ ├── blocks │ │ │ ├── aerial_roots_rooty_soil.json │ │ │ ├── branches.json │ │ │ ├── branches_that_burn.json │ │ │ ├── foliage.json │ │ │ ├── fungus_branches.json │ │ │ ├── fungus_caps.json │ │ │ ├── leaves.json │ │ │ ├── roots.json │ │ │ ├── rooty_soil.json │ │ │ ├── saplings.json │ │ │ ├── stripped_branches.json │ │ │ ├── stripped_branches_that_burn.json │ │ │ ├── stripped_fungus_branches.json │ │ │ └── wart_blocks.json │ │ └── items │ │ │ ├── branches.json │ │ │ ├── branches_that_burn.json │ │ │ ├── fungus_branches.json │ │ │ ├── fungus_caps.json │ │ │ └── seeds.json │ └── worldgen │ │ ├── configured_feature │ │ ├── cave_rooted_tree.json │ │ └── dynamic_tree.json │ │ └── placed_feature │ │ ├── cave_rooted_tree.json │ │ └── dynamic_tree.json │ └── minecraft │ ├── tags │ ├── blocks │ │ ├── enderman_holdable.json │ │ ├── flower_pots.json │ │ ├── hoglin_repellents.json │ │ ├── leaves.json │ │ ├── logs.json │ │ ├── logs_that_burn.json │ │ ├── mineable │ │ │ └── axe.json │ │ ├── saplings.json │ │ └── wart_blocks.json │ └── items │ │ └── saplings.json │ └── worldgen │ ├── configured_feature │ ├── crimson_forest_vegetation.json │ ├── crimson_forest_vegetation_bonemeal.json │ ├── warped_forest_vegetation.json │ └── warped_forest_vegetation_bonemeal.json │ └── template_pool │ └── village │ ├── plains │ ├── decor.json │ ├── town_centers.json │ ├── trees.json │ └── zombie │ │ └── decor.json │ ├── savanna │ ├── decor.json │ ├── trees.json │ └── zombie │ │ └── decor.json │ ├── snowy │ ├── decor.json │ ├── trees.json │ └── zombie │ │ └── decor.json │ └── taiga │ ├── decor.json │ └── zombie │ └── decor.json ├── localization └── resources │ └── assets │ └── dynamictrees │ └── lang │ ├── de_de.json │ ├── es_es.json │ ├── es_mx.json │ ├── fr_fr.json │ ├── it_it.json │ ├── ja_jp.json │ ├── ko_kr.json │ ├── nl_nl.json │ ├── pl_pl.json │ ├── ru_ru.json │ ├── sv_se.json │ ├── uk_ua.json │ └── zh_cn.json └── main ├── java └── com │ └── ferreusveritas │ └── dynamictrees │ ├── DynamicTrees.java │ ├── api │ ├── Ageable.java │ ├── FutureBreakable.java │ ├── GatherDataHelper.java │ ├── RootyBlockDecayer.java │ ├── TreeHelper.java │ ├── TreeRegistry.java │ ├── applier │ │ ├── Applier.java │ │ ├── ApplierRegistryEvent.java │ │ ├── ArrayIteratorPropertyApplier.java │ │ ├── ArrayPropertyApplier.java │ │ ├── IfTrueApplier.java │ │ ├── JsonPropertyApplier.java │ │ ├── MapPropertyApplier.java │ │ ├── MultiPropertyApplier.java │ │ ├── PropertyApplier.java │ │ ├── PropertyApplierResult.java │ │ └── VoidApplier.java │ ├── cell │ │ ├── Cell.java │ │ ├── CellKit.java │ │ ├── CellNull.java │ │ └── CellSolver.java │ ├── client │ │ └── ModelHelper.java │ ├── configuration │ │ ├── Configurable.java │ │ ├── ConfigurableRegistry.java │ │ ├── ConfigurableRegistryEntry.java │ │ ├── Configuration.java │ │ ├── ConfigurationProperty.java │ │ ├── ConfigurationTemplate.java │ │ ├── ConfigurationTemplateResourceLoader.java │ │ ├── CustomConfigurationProperty.java │ │ ├── CustomConfigurationTemplate.java │ │ ├── DefaultConfigurationTemplate.java │ │ ├── Properties.java │ │ ├── PropertiesAccessor.java │ │ ├── PropertyDefinition.java │ │ ├── TemplateRegistry.java │ │ └── package-info.java │ ├── data │ │ ├── AerialRootsSoilGenerator.java │ │ ├── BranchItemModelGenerator.java │ │ ├── BranchStateGenerator.java │ │ ├── DTExtraLangGenerator.java │ │ ├── FamilyLangGenerator.java │ │ ├── Generator.java │ │ ├── LeavesPropertiesLangGenerator.java │ │ ├── LeavesStateGenerator.java │ │ ├── PalmLeavesStateGenerator.java │ │ ├── RootsItemModelGenerator.java │ │ ├── RootsStateGenerator.java │ │ ├── SaplingStateGenerator.java │ │ ├── SeedItemModelGenerator.java │ │ ├── SoilStateGenerator.java │ │ ├── SpeciesLangGenerator.java │ │ ├── StrippedBranchStateGenerator.java │ │ ├── SurfaceRootStateGenerator.java │ │ ├── WaterRootGenerator.java │ │ └── package-info.java │ ├── event │ │ ├── AddResourceLoadersEvent.java │ │ ├── Hooks.java │ │ └── TransitionSaplingToTreeEvent.java │ ├── network │ │ ├── MapSignal.java │ │ └── NodeInspector.java │ ├── package-info.java │ ├── registry │ │ ├── AbstractRegistry.java │ │ ├── ConcurrentRegistry.java │ │ ├── Registries.java │ │ ├── Registry.java │ │ ├── RegistryEntry.java │ │ ├── RegistryEvent.java │ │ ├── RegistryHandler.java │ │ ├── SimpleRegistry.java │ │ ├── TypeRegistryEvent.java │ │ └── TypedRegistry.java │ ├── resource │ │ ├── DTResource.java │ │ ├── ResourceAccessor.java │ │ ├── ResourceCollector.java │ │ ├── SimpleResourceAccessor.java │ │ ├── SimpleResourceCollector.java │ │ ├── TreeResourceManager.java │ │ ├── TreeResourcePack.java │ │ └── loading │ │ │ ├── AbstractResourceLoader.java │ │ │ ├── ApplicationException.java │ │ │ ├── ApplierResourceLoader.java │ │ │ ├── ResourceLoader.java │ │ │ ├── StagedApplierResourceLoader.java │ │ │ └── preparation │ │ │ ├── AbstractResourcePreparer.java │ │ │ ├── JsonRegistryResourceLoader.java │ │ │ ├── JsonResourcePreparer.java │ │ │ ├── MultiJsonResourcePreparer.java │ │ │ ├── PreparationException.java │ │ │ ├── ResourcePreparer.java │ │ │ └── TextResourcePreparer.java │ ├── season │ │ ├── ClimateZoneType.java │ │ ├── SeasonGrowthCalculator.java │ │ └── SeasonManager.java │ ├── substance │ │ ├── Emptiable.java │ │ ├── SubstanceEffect.java │ │ └── SubstanceEffectProvider.java │ ├── treedata │ │ ├── BiomeSuitabilityDecider.java │ │ └── TreePart.java │ └── worldgen │ │ ├── BiomePropertySelectors.java │ │ ├── FeatureCanceller.java │ │ ├── GroundFinder.java │ │ ├── PoissonDebug.java │ │ ├── PoissonDiscProvider.java │ │ └── RadiusCoordinator.java │ ├── block │ ├── BlockWithDynamicHardness.java │ ├── DynamicSaplingBlock.java │ ├── FruitBlock.java │ ├── GrowableBlock.java │ ├── NullTreePart.java │ ├── OffsetablePodBlock.java │ ├── PodBlock.java │ ├── PottedSaplingBlock.java │ ├── branch │ │ ├── BasicBranchBlock.java │ │ ├── BasicRootsBlock.java │ │ ├── BranchBlock.java │ │ ├── Musable.java │ │ ├── SurfaceRootBlock.java │ │ ├── ThickBranchBlock.java │ │ ├── TrunkShellBlock.java │ │ └── package-info.java │ ├── entity │ │ ├── PottedSaplingBlockEntity.java │ │ └── SpeciesBlockEntity.java │ ├── leaves │ │ ├── CherryLeavesProperties.java │ │ ├── DynamicLeavesBlock.java │ │ ├── LeavesProperties.java │ │ ├── PalmLeavesProperties.java │ │ ├── ScruffyLeavesProperties.java │ │ ├── SolidDynamicLeavesBlock.java │ │ ├── SolidLeavesProperties.java │ │ ├── WartProperties.java │ │ └── package-info.java │ ├── package-info.java │ └── rooty │ │ ├── AerialRootsSoilProperties.java │ │ ├── RootyBlock.java │ │ ├── SoilHelper.java │ │ ├── SoilProperties.java │ │ ├── SpreadableSoilProperties.java │ │ ├── WaterSoilProperties.java │ │ └── package-info.java │ ├── cell │ ├── AcaciaLeafCell.java │ ├── CellKits.java │ ├── ConiferBranchCell.java │ ├── ConiferLeafCell.java │ ├── ConiferTopBranchCell.java │ ├── DarkOakLeafCell.java │ ├── LeafClusters.java │ ├── MatrixCell.java │ ├── MetadataCell.java │ ├── NetherFungusLeafCell.java │ ├── NormalCell.java │ └── PalmFrondCell.java │ ├── client │ ├── BakedQuadRetextured.java │ ├── BlockColorMultipliers.java │ ├── ModelUtils.java │ ├── QuadManipulator.java │ ├── SoundInstanceHandler.java │ ├── TextureUtils.java │ └── TooltipHandler.java │ ├── command │ ├── ChunkBasedCommand.java │ ├── ClearOrphanedCommand.java │ ├── CommandConstants.java │ ├── CreateStaffCommand.java │ ├── CreateTransformPotionCommand.java │ ├── DTArgumentTypes.java │ ├── DTCommand.java │ ├── FertilityCommand.java │ ├── GetRootsCommand.java │ ├── GetTreeCommand.java │ ├── GrowPulseCommand.java │ ├── HexColorArgument.java │ ├── KillTreeCommand.java │ ├── PurgeTreesCommand.java │ ├── RegistryCommand.java │ ├── RegistrySubCommand.java │ ├── RotateJoCodeCommand.java │ ├── SetCoordXorCommand.java │ ├── SetTreeCommand.java │ ├── SimpleSubCommand.java │ ├── SubCommand.java │ ├── TransformCommand.java │ └── package-info.java │ ├── compat │ ├── CompatHandler.java │ ├── DTJeiPlugin.java │ ├── season │ │ ├── ActiveSeasonGrowthCalculator.java │ │ ├── NormalSeasonManager.java │ │ ├── NullSeasonGrowthCalculator.java │ │ ├── NullSeasonProvider.java │ │ ├── SeasonContext.java │ │ ├── SeasonHelper.java │ │ ├── SeasonProvider.java │ │ └── SereneSeasonsSeasonProvider.java │ └── waila │ │ ├── WailaBranchHandler.java │ │ ├── WailaCompat.java │ │ ├── WailaFruitHandler.java │ │ ├── WailaOther.java │ │ ├── WailaPodHandler.java │ │ ├── WailaRootyHandler.java │ │ └── WailaRootyWaterHandler.java │ ├── data │ ├── DTBiomeTags.java │ ├── DTBlockTags.java │ ├── DTEntityTypeTags.java │ ├── DTItemTags.java │ ├── DTRecipes.java │ └── provider │ │ ├── BranchLoaderBuilder.java │ │ ├── DTBlockStateProvider.java │ │ ├── DTBlockTagsProvider.java │ │ ├── DTDataProvider.java │ │ ├── DTDatapackBuiltinEntriesProvider.java │ │ ├── DTItemModelProvider.java │ │ ├── DTItemTagsProvider.java │ │ ├── DTLangProvider.java │ │ ├── DTLootTableProvider.java │ │ ├── DataGenerationStreamEvent.java │ │ └── PalmLeavesLoaderBuilder.java │ ├── deserialisation │ ├── AxisAlignedBBDeserialiser.java │ ├── BiomeListDeserialiser.java │ ├── BooleanOpDeserialiser.java │ ├── ConfiguredDeserialiser.java │ ├── DeserialisableClassDeserialiser.java │ ├── DeserialisationException.java │ ├── Deserialiser.java │ ├── EnumDeserialiser.java │ ├── ForgeRegistryEntryDeserialiser.java │ ├── JsonDeserialiser.java │ ├── JsonDeserialisers.java │ ├── JsonHelper.java │ ├── JsonPropertyApplierLists.java │ ├── JsonPropertyAppliers.java │ ├── ListDeserialiser.java │ ├── MapColorDeserialiser.java │ ├── MapDeserialiser.java │ ├── NoSuchDeserialiserException.java │ ├── PropertyAppliers.java │ ├── PropertyDefinitionDeserialiser.java │ ├── RegistryEntryDeserialiser.java │ ├── ResourceLocationDeserialiser.java │ ├── SeedSaplingRecipeDeserialiser.java │ ├── SoundTypeDeserialiser.java │ ├── StaticFieldDeserialiser.java │ ├── TagKeyJsonPropertyApplier.java │ ├── VoxelShapeDeserialiser.java │ ├── package-info.java │ └── result │ │ ├── AbstractResult.java │ │ ├── JsonResult.java │ │ ├── MappedJsonResult.java │ │ ├── MappedResult.java │ │ └── Result.java │ ├── entity │ ├── FallingTreeEntity.java │ ├── LingeringEffectorEntity.java │ ├── animation │ │ ├── AnimationConstants.java │ │ ├── AnimationHandler.java │ │ ├── AnimationHandlers.java │ │ ├── DataAnimationHandler.java │ │ ├── FalloverAnimationHandler.java │ │ ├── PhysicsAnimationHandler.java │ │ └── VoidAnimationHandler.java │ └── render │ │ ├── FallingTreeRenderer.java │ │ └── LingeringEffectorRenderer.java │ ├── event │ ├── BiomeSuitabilityEvent.java │ ├── FutureBreak.java │ ├── PoissonDiscProviderCreateEvent.java │ ├── SeedVoluntaryPlantEvent.java │ ├── SpeciesPostGenerationEvent.java │ ├── VoluntarySeedDropEvent.java │ └── handler │ │ ├── BakedModelEventHandler.java │ │ ├── BlockBreakAnimationClientHandler.java │ │ ├── CommonEventHandler.java │ │ ├── EventHandlers.java │ │ ├── LeafUpdateEventHandler.java │ │ ├── ServerEventHandler.java │ │ ├── VanillaSaplingEventHandler.java │ │ ├── WorldGenEventHandler.java │ │ └── WorldListener.java │ ├── growthlogic │ ├── AzaleaLogic.java │ ├── ConiferLogic.java │ ├── DarkOakLogic.java │ ├── GrowthLogicKit.java │ ├── GrowthLogicKitConfiguration.java │ ├── GrowthLogicKits.java │ ├── JungleLogic.java │ ├── MangroveRootsLogic.java │ ├── NetherFungusLogic.java │ ├── PalmGrowthLogic.java │ └── context │ │ ├── DirectionManipulationContext.java │ │ ├── DirectionSelectionContext.java │ │ └── PositionalSpeciesContext.java │ ├── init │ ├── DTClient.java │ ├── DTConfigs.java │ ├── DTRegistries.java │ └── DTTrees.java │ ├── item │ ├── DendroPotion.java │ ├── DirtBucket.java │ ├── Seed.java │ ├── Staff.java │ └── package-info.java │ ├── loot │ ├── DTLoot.java │ ├── DTLootContextParams.java │ ├── DTLootParameterSets.java │ ├── condition │ │ ├── DTLootConditions.java │ │ ├── SeasonalSeedDropChance.java │ │ ├── SpeciesMatches.java │ │ └── VoluntarySeedDropChance.java │ ├── entry │ │ ├── DTLootPoolEntries.java │ │ ├── ItemBySpeciesLootPoolEntry.java │ │ ├── SeedItemLootPoolEntry.java │ │ └── WeightedItemLootPoolEntry.java │ └── function │ │ ├── DTLootFunctions.java │ │ ├── MultiplyCount.java │ │ ├── MultiplyLogsCount.java │ │ ├── MultiplySticksCount.java │ │ └── package-info.java │ ├── models │ ├── FallingTreeEntityModel.java │ ├── FallingTreeEntityModelTrackerCache.java │ ├── ModelTracker.java │ ├── baked │ │ ├── BakedModelBlockBonsaiPot.java │ │ ├── BasicBranchBlockBakedModel.java │ │ ├── BasicRootsBlockBakedModel.java │ │ ├── LargePalmLeavesBakedModel.java │ │ ├── MediumPalmLeavesBakedModel.java │ │ ├── PalmLeavesBakedModel.java │ │ ├── SmallPalmLeavesBakedModel.java │ │ ├── SurfaceRootBlockBakedModel.java │ │ ├── ThickBranchBlockBakedModel.java │ │ └── package-info.java │ ├── geometry │ │ ├── BranchBlockModelGeometry.java │ │ ├── PalmLeavesModelGeometry.java │ │ ├── RootsBlockModelGeometry.java │ │ ├── SurfaceRootBlockModelGeometry.java │ │ └── package-info.java │ ├── loader │ │ ├── BranchBlockModelLoader.java │ │ ├── PalmLeavesModelLoader.java │ │ ├── RootsBlockModelLoader.java │ │ ├── SurfaceRootBlockModelLoader.java │ │ ├── ThickBranchBlockModelLoader.java │ │ └── package-info.java │ └── modeldata │ │ ├── ModelConnections.java │ │ ├── RootModelConnections.java │ │ └── package-info.java │ ├── resources │ ├── FlatTreeResourcePack.java │ ├── ModTreeResourcePack.java │ ├── Resources.java │ ├── TreesResourceManager.java │ ├── loader │ │ ├── BiomePopulatorsResourceLoader.java │ │ ├── FamilyResourceLoader.java │ │ ├── FeatureCancellationResourceLoader.java │ │ ├── FruitResourceLoader.java │ │ ├── JoCodeResourceLoader.java │ │ ├── JoCodeResourcePreparer.java │ │ ├── LeavesPropertiesResourceLoader.java │ │ ├── PodResourceLoader.java │ │ ├── SoilPropertiesResourceLoader.java │ │ └── SpeciesResourceLoader.java │ └── package-info.java │ ├── systems │ ├── BranchConnectables.java │ ├── GrowSignal.java │ ├── SeedSaplingRecipe.java │ ├── fruit │ │ └── Fruit.java │ ├── genfeature │ │ ├── AlternativeLeavesGenFeature.java │ │ ├── BeeNestGenFeature.java │ │ ├── BiomePredicateGenFeature.java │ │ ├── BottomFlareGenFeature.java │ │ ├── BushGenFeature.java │ │ ├── ClearVolumeGenFeature.java │ │ ├── ConiferTopperGenFeature.java │ │ ├── FruitGenFeature.java │ │ ├── GenFeature.java │ │ ├── GenFeatureConfiguration.java │ │ ├── GenFeatures.java │ │ ├── HugeMushroomGenFeature.java │ │ ├── HugeMushroomsGenFeature.java │ │ ├── MoundGenFeature.java │ │ ├── MushroomRotGenFeature.java │ │ ├── PodGenFeature.java │ │ ├── PodzolGenFeature.java │ │ ├── RandomPredicateGenFeature.java │ │ ├── RootSystemGenFeature.java │ │ ├── RootsGenFeature.java │ │ ├── RotSoilGenFeature.java │ │ ├── ShroomlightGenFeature.java │ │ ├── UndergrowthGenFeature.java │ │ ├── VinesGenFeature.java │ │ ├── context │ │ │ ├── FullGenerationContext.java │ │ │ ├── GenerationContext.java │ │ │ ├── PostGenerationContext.java │ │ │ ├── PostGrowContext.java │ │ │ ├── PostRotContext.java │ │ │ └── PreGenerationContext.java │ │ └── package-info.java │ ├── nodemapper │ │ ├── CoderNode.java │ │ ├── CollectorNode.java │ │ ├── DenuderNode.java │ │ ├── DestroyerNode.java │ │ ├── DiseaseNode.java │ │ ├── FindEndsNode.java │ │ ├── FreezerNode.java │ │ ├── InflatorNode.java │ │ ├── NetVolumeNode.java │ │ ├── PodGenerationNode.java │ │ ├── RootIntegrityNode.java │ │ ├── RootsDestroyerNode.java │ │ ├── ShrinkerNode.java │ │ ├── SpeciesNode.java │ │ ├── StateNode.java │ │ ├── TransformNode.java │ │ └── TwinkleNode.java │ ├── pod │ │ └── Pod.java │ ├── poissondisc │ │ ├── LevelPoissonDiscProvider.java │ │ ├── PoissonDisc.java │ │ ├── PoissonDiscChunkSet.java │ │ ├── PoissonDiscHelper.java │ │ ├── PoissonDiscMathHelper.java │ │ ├── PoissonDiscPairData.java │ │ ├── UniversalPoissonDiscProvider.java │ │ ├── Vec2i.java │ │ └── Vec2iPCA.java │ └── substance │ │ ├── DenudeSubstance.java │ │ ├── DepleteSubstance.java │ │ ├── FertilizeSubstance.java │ │ ├── FreezeSubstance.java │ │ ├── GrowthSubstance.java │ │ ├── HarvestSubstance.java │ │ ├── LingeringSubstances.java │ │ ├── MegaSubstance.java │ │ └── TransformSubstance.java │ ├── tree │ ├── Resettable.java │ ├── family │ │ ├── Family.java │ │ ├── MangroveFamily.java │ │ ├── NetherFungusFamily.java │ │ └── PalmFamily.java │ ├── package-info.java │ └── species │ │ ├── FakeMushroomSpecies.java │ │ ├── MangroveSpecies.java │ │ ├── NetherFungusSpecies.java │ │ ├── PalmSpecies.java │ │ ├── Species.java │ │ └── SwampOakSpecies.java │ ├── util │ ├── AgeProperties.java │ ├── AlternateLinkedHashSet.java │ ├── BlockBounds.java │ ├── BlockStates.java │ ├── BranchConnectionData.java │ ├── BranchDestructionData.java │ ├── ChunkTreeHelper.java │ ├── CommandHelper.java │ ├── CommonCollectors.java │ ├── CommonSetup.java │ ├── CommonVoxelShapes.java │ ├── Connections.java │ ├── CoordUtils.java │ ├── DendroBrewingRecipe.java │ ├── EntityUtils.java │ ├── IgnoreThrowable.java │ ├── ItemUtils.java │ ├── JsonMapWrapper.java │ ├── LazyMutableValue.java │ ├── LazyValue.java │ ├── LevelContext.java │ ├── LootTableSupplier.java │ ├── MathHelper.java │ ├── MutableLazyValue.java │ ├── MutableSuppliedLazyValue.java │ ├── Null.java │ ├── OffsetProperties.java │ ├── Optionals.java │ ├── RandomXOR.java │ ├── RayTraceCollision.java │ ├── ReflectionHelper.java │ ├── ResourceLocationUtils.java │ ├── RootConnections.java │ ├── SafeChunkBounds.java │ ├── ShapeFunctions.java │ ├── ShapeUtils.java │ ├── SimpleBitmap.java │ ├── SimpleVoxmap.java │ ├── SuppliedLazyValue.java │ ├── ThrowableRunnable.java │ ├── function │ │ ├── BiomePredicate.java │ │ ├── CanGrowPredicate.java │ │ ├── TetraFunction.java │ │ ├── ThrowableBiFunction.java │ │ ├── ThrowableFunction.java │ │ └── TriFunction.java │ ├── holderset │ │ ├── DTBiomeHolderSet.java │ │ ├── DelayedHolderSet.java │ │ ├── IncludesExcludesHolderSet.java │ │ ├── NameRegexMatchHolderSet.java │ │ ├── RegexMatchHolderSet.java │ │ ├── StreamBackedHolderSet.java │ │ └── TagsRegexMatchHolderSet.java │ └── package-info.java │ └── worldgen │ ├── BiomeDatabase.java │ ├── BiomeDatabases.java │ ├── BiomeRadiusCoordinator.java │ ├── CaveRootedTreeFeature.java │ ├── CaveRootedTreePlacement.java │ ├── DTFeatures.java │ ├── DynamicTreeFeature.java │ ├── FeatureCancellationRegistry.java │ ├── GenerationContext.java │ ├── JoCode.java │ ├── JoCodeRegistry.java │ ├── OverworldGroundFinder.java │ ├── RootsJoCode.java │ ├── SubterraneanGroundFinder.java │ ├── SurfaceGroundFinder.java │ ├── biomemodifiers │ ├── AddDynamicTreesBiomeModifier.java │ └── RunFeatureCancellersBiomeModifier.java │ ├── deserialisation │ ├── ChanceSelectorDeserialiser.java │ ├── DensitySelectorDeserialiser.java │ ├── JsonBiomeDatabaseDeserialiser.java │ ├── JsonMath.java │ ├── SpeciesSelectorDeserialiser.java │ └── package-info.java │ ├── feature │ └── DTReplaceNyliumFungiBlockStateProvider.java │ ├── featurecancellation │ ├── FungusFeatureCanceller.java │ ├── MushroomFeatureCanceller.java │ ├── TreeFeatureCanceller.java │ └── package-info.java │ ├── package-info.java │ └── structure │ ├── DTCancelVanillaTreePoolElement.java │ ├── RegularTemplatePoolModifier.java │ ├── TemplatePoolModifier.java │ ├── TreePoolElement.java │ └── VillageTreeReplacement.java └── resources ├── META-INF ├── accesstransformer.cfg └── mods.toml ├── assets ├── dynamictrees │ ├── blockstates │ │ ├── apple.json │ │ ├── cocoa.json │ │ ├── potted_sapling.json │ │ └── trunk_shell.json │ ├── models │ │ ├── block │ │ │ ├── empty.json │ │ │ ├── fruit │ │ │ │ ├── apple_age0.json │ │ │ │ ├── apple_age1.json │ │ │ │ ├── apple_age2.json │ │ │ │ └── apple_age3.json │ │ │ ├── pod │ │ │ │ ├── cocoa_stage0_radius4.json │ │ │ │ ├── cocoa_stage0_radius5.json │ │ │ │ ├── cocoa_stage0_radius6.json │ │ │ │ ├── cocoa_stage0_radius7.json │ │ │ │ ├── cocoa_stage0_radius8.json │ │ │ │ ├── cocoa_stage1_radius4.json │ │ │ │ ├── cocoa_stage1_radius5.json │ │ │ │ ├── cocoa_stage1_radius6.json │ │ │ │ ├── cocoa_stage1_radius7.json │ │ │ │ ├── cocoa_stage1_radius8.json │ │ │ │ ├── cocoa_stage2_radius4.json │ │ │ │ ├── cocoa_stage2_radius5.json │ │ │ │ ├── cocoa_stage2_radius6.json │ │ │ │ ├── cocoa_stage2_radius7.json │ │ │ │ └── cocoa_stage2_radius8.json │ │ │ ├── roots.json │ │ │ ├── roots_tint_2.json │ │ │ ├── roots_water.json │ │ │ ├── smartmodel │ │ │ │ ├── mushroom_flat.json │ │ │ │ ├── mushroom_round.json │ │ │ │ ├── palm │ │ │ │ │ ├── core_bottom.json │ │ │ │ │ └── core_top.json │ │ │ │ ├── rooty │ │ │ │ │ ├── aerial_roots_radius1.json │ │ │ │ │ ├── aerial_roots_radius2.json │ │ │ │ │ ├── aerial_roots_radius3.json │ │ │ │ │ ├── aerial_roots_radius4.json │ │ │ │ │ ├── aerial_roots_radius5.json │ │ │ │ │ ├── aerial_roots_radius6.json │ │ │ │ │ ├── aerial_roots_radius7.json │ │ │ │ │ └── aerial_roots_radius8.json │ │ │ │ ├── sapling.json │ │ │ │ ├── water_sapling.json │ │ │ │ └── water_sapling_thin.json │ │ │ └── tall_slab.json │ │ └── item │ │ │ ├── branch.json │ │ │ ├── dendro_potion.json │ │ │ ├── dirt_bucket.json │ │ │ ├── manual.json │ │ │ ├── root_branch.json │ │ │ ├── staff.json │ │ │ └── standard_seed.json │ ├── patchouli_books │ │ └── guide │ │ │ ├── en_us │ │ │ ├── categories │ │ │ │ ├── mechanics.json │ │ │ │ ├── potions.json │ │ │ │ └── trees.json │ │ │ ├── entries │ │ │ │ ├── mechanics │ │ │ │ │ ├── dirt_bucket.json │ │ │ │ │ ├── rooty_soil.json │ │ │ │ │ └── staff.json │ │ │ │ ├── potions │ │ │ │ │ ├── base_potion.json │ │ │ │ │ ├── burgeoning_potion.json │ │ │ │ │ ├── depletion_potion.json │ │ │ │ │ ├── gigas_potion.json │ │ │ │ │ └── transformation_potion.json │ │ │ │ └── trees │ │ │ │ │ ├── apple_tree.json │ │ │ │ │ ├── features.json │ │ │ │ │ ├── nether_fungi.json │ │ │ │ │ └── overworld_trees.json │ │ │ └── templates │ │ │ │ ├── brewing.json │ │ │ │ └── brewing2.json │ │ │ └── ja_jp │ │ │ ├── categories │ │ │ ├── mechanics.json │ │ │ ├── potions.json │ │ │ └── trees.json │ │ │ ├── entries │ │ │ ├── mechanics │ │ │ │ ├── dirt_bucket.json │ │ │ │ ├── rooty_soil.json │ │ │ │ └── staff.json │ │ │ ├── potions │ │ │ │ ├── base_potion.json │ │ │ │ ├── burgeoning_potion.json │ │ │ │ ├── depletion_potion.json │ │ │ │ ├── gigas_potion.json │ │ │ │ └── transformation_potion.json │ │ │ └── trees │ │ │ │ ├── apple_tree.json │ │ │ │ ├── features.json │ │ │ │ ├── nether_fungi.json │ │ │ │ └── overworld_trees.json │ │ │ └── templates │ │ │ ├── brewing.json │ │ │ └── brewing2.json │ ├── shaders │ │ └── block.properties │ ├── sounds.json │ ├── sounds │ │ └── falling_tree │ │ │ ├── big │ │ │ ├── end1.ogg │ │ │ ├── end2.ogg │ │ │ ├── end3.ogg │ │ │ ├── start1.ogg │ │ │ ├── start2.ogg │ │ │ └── start3.ogg │ │ │ ├── fungus │ │ │ ├── end1.ogg │ │ │ ├── end2.ogg │ │ │ ├── end3.ogg │ │ │ ├── small_end1.ogg │ │ │ ├── start1.ogg │ │ │ ├── start2.ogg │ │ │ ├── start3.ogg │ │ │ └── start4.ogg │ │ │ ├── medium │ │ │ ├── end1.ogg │ │ │ ├── end2.ogg │ │ │ ├── end3.ogg │ │ │ ├── start1.ogg │ │ │ ├── start2.ogg │ │ │ └── start3.ogg │ │ │ ├── small │ │ │ ├── end1.ogg │ │ │ ├── end2.ogg │ │ │ ├── end_bare1.ogg │ │ │ ├── end_bare2.ogg │ │ │ ├── end_water1.ogg │ │ │ └── end_water2.ogg │ │ │ └── water │ │ │ ├── fall1.ogg │ │ │ ├── fall2.ogg │ │ │ └── fall3.ogg │ └── textures │ │ ├── block │ │ ├── air.png │ │ ├── apple.png │ │ ├── apple_golden.png │ │ ├── crimson_cap.png │ │ ├── roots.png │ │ ├── roots_bottom.png │ │ ├── sapling_water_roots.png │ │ ├── test.png │ │ ├── warped_cap.png │ │ └── water_roots.png │ │ ├── item │ │ ├── acacia_seed.png │ │ ├── apple_oak_seed.png │ │ ├── azalea_seed.png │ │ ├── birch_seed.png │ │ ├── cherry_seed.png │ │ ├── cocoa_seed.png │ │ ├── crimson_seed.png │ │ ├── dark_oak_seed.png │ │ ├── dirt_bucket.png │ │ ├── jungle_seed.png │ │ ├── mangrove_seed.png │ │ ├── manual.png │ │ ├── oak_seed.png │ │ ├── spruce_seed.png │ │ ├── staff.png │ │ ├── staff_glimmer.png │ │ ├── staff_handle.png │ │ ├── staff_overlay.png │ │ └── warped_seed.png │ │ └── patchouli │ │ ├── gui │ │ ├── brewing.png │ │ └── page_filler.png │ │ └── images │ │ ├── acacia_1.png │ │ ├── apple_oak_1.png │ │ ├── bees_1.png │ │ ├── burgeoning.png │ │ ├── dark_oak_1.png │ │ ├── falling_tree_1.png │ │ ├── mega_spruce.png │ │ ├── nether_fungi_1.png │ │ ├── nether_fungi_2.png │ │ ├── oak_1.png │ │ ├── rooty_soil.png │ │ └── spruce_1.png └── minecraft │ └── textures │ └── block │ ├── acacia_log_top_thick.png │ ├── birch_log_top_thick.png │ ├── crimson_stem_top_thick.png │ ├── dark_oak_log_top_thick.png │ ├── jungle_log_top_thick.png │ ├── oak_log_top_thick.png │ ├── spruce_log_top_thick.png │ ├── stripped_acacia_log_top_thick.png │ ├── stripped_birch_log_top_thick.png │ ├── stripped_crimson_stem_top_thick.png │ ├── stripped_dark_oak_log_top_thick.png │ ├── stripped_jungle_log_top_thick.png │ ├── stripped_oak_log_top_thick.png │ ├── stripped_spruce_log_top_thick.png │ ├── stripped_warped_stem_top_thick.png │ └── warped_stem_top_thick.png ├── data ├── dynamictrees │ ├── damage_type │ │ └── falling_tree.json │ ├── forge │ │ └── biome_modifier │ │ │ ├── add_dynamic_trees.json │ │ │ └── run_feature_cancellers.json │ ├── patchouli_books │ │ └── guide │ │ │ └── book.json │ ├── recipes │ │ ├── cocoa_beans.json │ │ ├── dirt_bucket.json │ │ └── guide.json │ ├── structures │ │ └── village │ │ │ └── plains │ │ │ └── town_centers │ │ │ └── plains_meeting_point_3.nbt │ └── tags │ │ ├── entity_types │ │ ├── can_pass_through_leaves.json │ │ ├── falling_tree_collision_blacklist.json │ │ └── falling_tree_damage_immune.json │ │ ├── items │ │ ├── enhanced_fertilizer.json │ │ └── fertilizer.json │ │ └── worldgen │ │ └── biome │ │ ├── is_bee_nest_common.json │ │ ├── is_bee_nest_guaranteed.json │ │ ├── is_bee_nest_rare.json │ │ └── is_bee_nest_uncommon.json └── minecraft │ ├── damage_type │ └── falling_tree.json │ └── tags │ ├── blocks │ └── snow_layer_can_survive_on.json │ └── damage_type │ └── falling_tree.json ├── logo.png ├── pack.mcmeta └── trees └── dynamictrees ├── families ├── acacia.json ├── birch.json ├── cherry.json ├── crimson.json ├── dark_oak.json ├── jungle.json ├── mangrove.json ├── oak.json ├── spruce.json └── warped.json ├── fruits └── apple.json ├── jo_codes ├── acacia.txt ├── apple_oak.txt ├── azalea.txt ├── birch.txt ├── cherry.txt ├── cocoa.txt ├── crimson.txt ├── dark_oak.txt ├── jungle.txt ├── jungle_undergrowth.txt ├── mangrove.txt ├── mega_crimson.txt ├── mega_jungle.txt ├── mega_spruce.txt ├── mega_warped.txt ├── oak.txt ├── oak_undergrowth.txt ├── spruce.txt ├── swamp_oak.txt ├── tall_birch.txt └── warped.txt ├── leaves_properties ├── acacia.json ├── azalea.json ├── bare.json ├── birch.json ├── cherry.json ├── crimson.json ├── dark_oak.json ├── flowering_azalea.json ├── jungle.json ├── jungle_undergrowth.json ├── mangrove.json ├── oak.json ├── oak_undergrowth.json ├── spruce.json └── warped.json ├── pods └── cocoa.json ├── soil_properties ├── brown_terracotta.json ├── clay.json ├── coarse_dirt.json ├── crimson_nylium.json ├── dirt.json ├── end_stone.json ├── farmland.json ├── grass_block.json ├── gravel.json ├── light_gray_terracotta.json ├── mangrove_aerial_roots.json ├── moss.json ├── moss_block.json ├── mud.json ├── mycelium.json ├── netherrack.json ├── orange_terracotta.json ├── podzol.json ├── powder_snow.json ├── red_sand.json ├── red_terracotta.json ├── rooted_dirt.json ├── sand.json ├── snow_block.json ├── soul_sand.json ├── soul_soil.json ├── terracotta.json ├── warped_nylium.json ├── water.json ├── white_terracotta.json └── yellow_terracotta.json ├── species ├── acacia.json ├── apple_oak.json ├── azalea.json ├── birch.json ├── cherry.json ├── cocoa.json ├── crimson.json ├── dark_oak.json ├── jungle.json ├── jungle_undergrowth.json ├── mangrove.json ├── mega_crimson.json ├── mega_jungle.json ├── mega_spruce.json ├── mega_warped.json ├── oak.json ├── oak_undergrowth.json ├── spruce.json ├── swamp_oak.json ├── tall_birch.json └── warped.json └── world_gen ├── default.json └── feature_cancellers.json /.gitattributes: -------------------------------------------------------------------------------- 1 | # Disable autocrlf on generated files, they always generate with LF 2 | # Add any extra files or paths here to make git stop saying they 3 | # are changed when only line endings change. 4 | src/generated/**/.cache/cache text eol=lf 5 | src/generated/**/*.json text eol=lf 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Discord 4 | url: https://discord.gg/A4FCBS3 5 | about: Use this for support, questions, and chat 6 | -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Gradle 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle 3 | 4 | name: Java CI with Gradle 5 | 6 | on: 7 | push: 8 | pull_request: 9 | 10 | jobs: 11 | build: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Set up JDK 17 18 | uses: actions/setup-java@v2 19 | with: 20 | java-version: '17' 21 | distribution: 'adopt' 22 | - name: Grant execute permission for gradlew 23 | run: chmod +x gradlew 24 | - name: Build with Gradle 25 | run: ./gradlew build 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # eclipse 2 | bin 3 | *.launch 4 | .settings 5 | .metadata 6 | .classpath 7 | .project 8 | 9 | # idea 10 | out 11 | *.ipr 12 | *.iws 13 | *.iml 14 | .idea 15 | 16 | # gradle 17 | build 18 | .gradle 19 | 20 | # other 21 | eclipse 22 | run 23 | run-server 24 | libs 25 | mcmodsrepo 26 | temp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dynamic Trees [![](http://cf.way2muchnoise.eu/versions/252818.svg) ![](http://cf.way2muchnoise.eu/252818.svg)](https://minecraft.curseforge.com/projects/dynamictrees/) 2 | 3 | Minecraft Forge mod providing dynamic trees that progressively grow from seed to maturity. 4 | 5 | ![Logo](./header.png) 6 | 7 | This branch is for the 1.20.x version of Minecraft. 8 | 9 | ### Links 10 | - [CurseForge](https://minecraft.curseforge.com/projects/dynamictrees) 11 | - [Modrinth](https://modrinth.com/mod/dynamictrees) 12 | - [Discord](https://discord.gg/A4FCBS3) 13 | 14 | ### Compiling 15 | * Clone the repository. 16 | * Open a command prompt/terminal to the repository directory. 17 | * Run `gradlew build` on Windows, or `./gradlew build` for MacOS or Linux. 18 | * The built jar file will be in `build/libs/`. 19 | -------------------------------------------------------------------------------- /buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | `java-library` 4 | } 5 | 6 | repositories { 7 | mavenCentral() 8 | } 9 | 10 | dependencies { 11 | implementation("com.google.code.gson:gson:2.8.7") 12 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | modName=DynamicTrees 2 | modId=dynamictrees 3 | modVersion=1.4.5 4 | 5 | group=com.ferreusveritas.dynamictrees 6 | 7 | mcVersion=1.20.1 8 | forgeVersion=47.3.0 9 | mappingsChannel=parchment 10 | mappingsVersion=1.19.3-2023.03.12-1.20.1 11 | 12 | jeiVersion=15.0.0.12 13 | patchouliVersion=1.20.1-84-FORGE 14 | suggestionProviderFixVersion=1.0.0 15 | ccVersion=1.109.4 16 | ssVersion=5790633 17 | gcVersion=5787839 18 | jadeVersion=4986594 19 | 20 | versionType=release 21 | 22 | # Path of update checker relative to version info file 23 | updateCheckerPath=DynamicTrees.json 24 | # Set to true if this version should be marked as the recommended version on the update checker 25 | versionRecommended=true 26 | 27 | org.gradle.jvmargs=-Xmx6G 28 | org.gradle.daemon=false -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/header.png -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | maven("https://maven.minecraftforge.net/") 5 | maven("https://maven.parchmentmc.org/") 6 | } 7 | } 8 | 9 | rootProject.name = "Dynamic Trees" -------------------------------------------------------------------------------- /src/generated/resources/.cache/ae7a3ddbbbde6f36e12a813e147261b681a4084e: -------------------------------------------------------------------------------- 1 | // 1.20.1 2024-01-27T13:51:06.53477 dynamictrees DT Item Tags 2 | 0852fd1f90777eeab7126995157c4b1242a44700 data/dynamictrees/tags/items/branches.json 3 | a2572689ed7e96c6b505b27867c5ef842778f52c data/dynamictrees/tags/items/branches_that_burn.json 4 | 265c9a52b7eb0cfd09154318ed7e17789980c9a6 data/dynamictrees/tags/items/fungus_branches.json 5 | 80f707272ee43de5e1e0d5897629cdd2798eb9dd data/dynamictrees/tags/items/fungus_caps.json 6 | f5cfda10e05daf1736afe55ea37b8bc61276d3ca data/dynamictrees/tags/items/seeds.json 7 | 40d8c97822466372474dc35e9087e3f6ac034207 data/minecraft/tags/items/saplings.json 8 | -------------------------------------------------------------------------------- /src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8: -------------------------------------------------------------------------------- 1 | // 1.20.1 2025-05-24T15:30:22.9190486 Languages: en_us 2 | 703bffeee29543aad80c901159deae662356e44e assets/dynamictrees/lang/en_us.json 3 | -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/acacia_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/acacia_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/acacia_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/acacia_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/acacia_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/acacia" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/apple_oak_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/apple_oak" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/azalea_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/azalea_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/azalea_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/azalea" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/birch_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/birch_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/birch_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/birch_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/birch_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/birch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/cherry_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/cherry_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/cherry_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/cherry_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/cherry_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/cherry" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/cocoa_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/cocoa" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/crimson_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/crimson_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/crimson_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/crimson" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/crimson_wart.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/nether_wart_block" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/dark_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/dark_oak_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/dark_oak_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/dark_oak_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/dark_oak_root.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/dark_oak_root" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/dark_oak_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/dark_oak" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/flowering_azalea_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/flowering_azalea_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/jungle_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/jungle_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/jungle_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/jungle_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/jungle_root.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/jungle_root" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/jungle_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/jungle" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/jungle_undergrowth_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/jungle_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/mangrove_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/mangrove_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/mangrove_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/mangrove_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/mangrove_roots.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "layer=covered": { 4 | "model": "minecraft:block/mud" 5 | }, 6 | "layer=exposed": { 7 | "model": "dynamictrees:block/mangrove_roots" 8 | }, 9 | "layer=filled": { 10 | "model": "dynamictrees:block/mangrove_roots_filled" 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/mangrove_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/mangrove" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/oak_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/oak_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/oak_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/oak_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/oak" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/oak_undergrowth_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/oak_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_brown_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/brown_terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_clay.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/clay" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_coarse_dirt.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/coarse_dirt" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_crimson_nylium.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/crimson_nylium" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_dirt.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/dirt" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_end_stone.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/end_stone" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_grass_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/grass_block" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_gravel.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/gravel" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_light_gray_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/light_gray_terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_moss.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/moss_block" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_moss_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/moss_block" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_mud.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/mud" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_mycelium.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/mycelium" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_netherrack.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/netherrack" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_orange_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/orange_terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_podzol.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/podzol" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_red_sand.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/red_sand" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_red_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/red_terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_rooted_dirt.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/rooted_dirt" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_sand.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/sand" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_soul_sand.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/soul_sand" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_soul_soil.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/soul_soil" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_warped_nylium.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/warped_nylium" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/roots_water" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_white_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/white_terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/rooty_yellow_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { 4 | "apply": { 5 | "model": "minecraft:block/yellow_terracotta" 6 | } 7 | }, 8 | { 9 | "apply": { 10 | "model": "dynamictrees:block/roots" 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/spruce_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/spruce_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/spruce_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/spruce_leaves" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/spruce_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/spruce" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_acacia_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_acacia_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_birch_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_birch_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_cherry_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_cherry_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_crimson_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_crimson_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_dark_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_dark_oak_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_jungle_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_jungle_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_mangrove_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_mangrove_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_oak_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_spruce_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_spruce_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/stripped_warped_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/stripped_warped_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/swamp_oak_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/swamp_oak" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/tall_birch_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/tall_birch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/warped_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/warped_branch" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/warped_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "dynamictrees:block/saplings/warped" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/blockstates/warped_wart.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { 4 | "model": "minecraft:block/warped_wart_block" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/acacia_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/acacia_log", 5 | "rings": "minecraft:block/acacia_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/birch_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/birch_log", 5 | "rings": "minecraft:block/birch_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/cherry_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/cherry_log", 5 | "rings": "minecraft:block/cherry_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/crimson_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/crimson_stem", 5 | "rings": "minecraft:block/crimson_stem_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/dark_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/dark_oak_log", 5 | "rings": "minecraft:block/dark_oak_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/dark_oak_root.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:surface_root", 3 | "textures": { 4 | "bark": "minecraft:block/dark_oak_log" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/jungle_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/jungle_log", 5 | "rings": "minecraft:block/jungle_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/jungle_root.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:surface_root", 3 | "textures": { 4 | "bark": "minecraft:block/jungle_log" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/mangrove_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/mangrove_log", 5 | "rings": "minecraft:block/mangrove_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/mangrove_roots.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:roots", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "bark": "minecraft:block/mangrove_roots_side", 6 | "rings": "minecraft:block/mangrove_roots_top" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/mangrove_roots_filled.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:roots", 3 | "textures": { 4 | "bark": "minecraft:block/muddy_mangrove_roots_side", 5 | "rings": "minecraft:block/muddy_mangrove_roots_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/oak_log", 5 | "rings": "minecraft:block/oak_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius1.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius1", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius2.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius2", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius3.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius3", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius4.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius4", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius5.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius5", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius6.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius6", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius7.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius7", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/rooty_mangrove_aerial_roots_radius8.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius8", 3 | "textures": { 4 | "end": "minecraft:block/mangrove_log_top", 5 | "overlay": "minecraft:block/mangrove_roots_side", 6 | "overlay_end": "minecraft:block/mangrove_roots_top", 7 | "side": "minecraft:block/mangrove_log" 8 | } 9 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/acacia.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/acacia_leaves", 6 | "log": "minecraft:block/acacia_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/apple_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/oak_leaves", 6 | "log": "minecraft:block/oak_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/azalea.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/azalea_leaves", 6 | "log": "minecraft:block/oak_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/birch_leaves", 6 | "log": "minecraft:block/birch_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/cherry.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/cherry_leaves", 6 | "log": "minecraft:block/cherry_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/cocoa.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/jungle_leaves", 6 | "log": "minecraft:block/jungle_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/crimson.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/mushroom_round", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "cap": "dynamictrees:block/crimson_cap", 6 | "stem": "dynamictrees:block/crimson_cap" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/dark_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/dark_oak_leaves", 6 | "log": "minecraft:block/dark_oak_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/jungle.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/jungle_leaves", 6 | "log": "minecraft:block/jungle_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/mangrove.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/water_sapling_thin", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/mangrove_leaves", 6 | "log": "minecraft:block/mangrove_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/oak_leaves", 6 | "log": "minecraft:block/oak_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/spruce.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/spruce_leaves", 6 | "log": "minecraft:block/spruce_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/swamp_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/water_sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/oak_leaves", 6 | "log": "minecraft:block/oak_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/tall_birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/sapling", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "leaves": "minecraft:block/birch_leaves", 6 | "log": "minecraft:block/birch_log" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/saplings/warped.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:block/smartmodel/mushroom_flat", 3 | "render_type": "minecraft:cutout_mipped", 4 | "textures": { 5 | "cap": "dynamictrees:block/warped_cap", 6 | "stem": "dynamictrees:block/warped_cap" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/spruce_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/spruce_log", 5 | "rings": "minecraft:block/spruce_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_acacia_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_acacia_log", 5 | "rings": "minecraft:block/stripped_acacia_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_birch_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_birch_log", 5 | "rings": "minecraft:block/stripped_birch_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_cherry_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_cherry_log", 5 | "rings": "minecraft:block/stripped_cherry_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_crimson_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_crimson_stem", 5 | "rings": "minecraft:block/stripped_crimson_stem_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_dark_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_dark_oak_log", 5 | "rings": "minecraft:block/stripped_dark_oak_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_jungle_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_jungle_log", 5 | "rings": "minecraft:block/stripped_jungle_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_mangrove_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_mangrove_log", 5 | "rings": "minecraft:block/stripped_mangrove_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_oak_log", 5 | "rings": "minecraft:block/stripped_oak_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_spruce_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_spruce_log", 5 | "rings": "minecraft:block/stripped_spruce_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/stripped_warped_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/stripped_warped_stem", 5 | "rings": "minecraft:block/stripped_warped_stem_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/block/warped_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": "dynamictrees:branch", 3 | "textures": { 4 | "bark": "minecraft:block/warped_stem", 5 | "rings": "minecraft:block/warped_stem_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/acacia_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/acacia_log", 5 | "rings": "minecraft:block/acacia_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/acacia_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/acacia_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/apple_oak_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/apple_oak_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/azalea_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/azalea_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/birch_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/birch_log", 5 | "rings": "minecraft:block/birch_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/birch_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/birch_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/cherry_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/cherry_log", 5 | "rings": "minecraft:block/cherry_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/cherry_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/cherry_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/cocoa_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/cocoa_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/crimson_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/crimson_stem", 5 | "rings": "minecraft:block/crimson_stem_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/crimson_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/crimson_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/dark_oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/dark_oak_log", 5 | "rings": "minecraft:block/dark_oak_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/dark_oak_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/dark_oak_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/jungle_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/jungle_log", 5 | "rings": "minecraft:block/jungle_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/jungle_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/jungle_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/mangrove_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/mangrove_log", 5 | "rings": "minecraft:block/mangrove_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/mangrove_roots.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/root_branch", 3 | "textures": { 4 | "bark": "minecraft:block/mangrove_roots_side", 5 | "rings": "minecraft:block/mangrove_roots_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/mangrove_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/mangrove_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/oak_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/oak_log", 5 | "rings": "minecraft:block/oak_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/oak_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/oak_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/spruce_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/spruce_log", 5 | "rings": "minecraft:block/spruce_log_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/spruce_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/spruce_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/warped_branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/branch", 3 | "textures": { 4 | "bark": "minecraft:block/warped_stem", 5 | "rings": "minecraft:block/warped_stem_top" 6 | } 7 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/dynamictrees/models/item/warped_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "dynamictrees:item/standard_seed", 3 | "textures": { 4 | "layer0": "dynamictrees:item/warped_seed" 5 | } 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/blocks/apple.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "block": "dynamictrees:apple", 12 | "condition": "minecraft:block_state_property", 13 | "properties": { 14 | "age": "3" 15 | } 16 | } 17 | ], 18 | "functions": [ 19 | { 20 | "function": "minecraft:explosion_decay" 21 | } 22 | ], 23 | "name": "minecraft:apple" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "dynamictrees:blocks/apple" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/blocks/cocoa.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "block": "dynamictrees:cocoa", 12 | "condition": "minecraft:block_state_property", 13 | "properties": { 14 | "age": "2" 15 | } 16 | } 17 | ], 18 | "functions": [ 19 | { 20 | "function": "minecraft:explosion_decay" 21 | } 22 | ], 23 | "name": "dynamictrees:cocoa_seed" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "dynamictrees:blocks/cocoa" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/blocks/crimson_wart.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "name": "minecraft:nether_wart_block" 15 | } 16 | ], 17 | "rolls": 1.0 18 | } 19 | ], 20 | "random_sequence": "dynamictrees:blocks/crimson_wart" 21 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/blocks/warped_wart.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "name": "minecraft:warped_wart_block" 15 | } 16 | ], 17 | "rolls": 1.0 18 | } 19 | ], 20 | "random_sequence": "dynamictrees:blocks/warped_wart" 21 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/leaves/crimson.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | }, 10 | { 11 | "chances": [ 12 | 0.1, 13 | 0.1333333, 14 | 0.1666666, 15 | 0.2 16 | ], 17 | "condition": "minecraft:table_bonus", 18 | "enchantment": "minecraft:fortune" 19 | } 20 | ], 21 | "entries": [ 22 | { 23 | "type": "minecraft:item", 24 | "name": "minecraft:nether_wart_block" 25 | } 26 | ], 27 | "rolls": 1.0 28 | } 29 | ], 30 | "random_sequence": "dynamictrees:trees/leaves/crimson" 31 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/leaves/warped.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | }, 10 | { 11 | "chances": [ 12 | 0.1, 13 | 0.1333333, 14 | 0.1666666, 15 | 0.2 16 | ], 17 | "condition": "minecraft:table_bonus", 18 | "enchantment": "minecraft:fortune" 19 | } 20 | ], 21 | "entries": [ 22 | { 23 | "type": "minecraft:item", 24 | "name": "minecraft:warped_wart_block" 25 | } 26 | ], 27 | "rolls": 1.0 28 | } 29 | ], 30 | "random_sequence": "dynamictrees:trees/leaves/warped" 31 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/acacia.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:acacia_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/acacia" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/apple_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:apple_oak_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/apple_oak" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/azalea.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:azalea_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/azalea" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:birch_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/birch" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/cherry.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:cherry_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/cherry" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/cocoa.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:cocoa_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/cocoa" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/crimson.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:crimson_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/crimson" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/dark_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:dark_oak_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/dark_oak" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/jungle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:jungle_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/jungle" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/mangrove.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:mangrove_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/mangrove" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:oak_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/oak" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/spruce.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:spruce_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/spruce" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/loot_tables/trees/voluntary/warped.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "conditions": [ 10 | { 11 | "condition": "dynamictrees:voluntary_seed_drop_chance", 12 | "rarity": 1.0 13 | } 14 | ], 15 | "name": "dynamictrees:warped_seed" 16 | } 17 | ], 18 | "rolls": 1.0 19 | } 20 | ], 21 | "random_sequence": "dynamictrees:trees/voluntary/warped" 22 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/aerial_roots_rooty_soil.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:rooty_mangrove_aerial_roots" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/branches.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:branches_that_burn", 4 | "#dynamictrees:fungus_branches" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/branches_that_burn.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:acacia_branch", 4 | "dynamictrees:birch_branch", 5 | "dynamictrees:cherry_branch", 6 | "dynamictrees:dark_oak_branch", 7 | "dynamictrees:jungle_branch", 8 | "dynamictrees:mangrove_branch", 9 | "dynamictrees:oak_branch", 10 | "dynamictrees:spruce_branch" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/foliage.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:grass", 4 | "minecraft:tall_grass", 5 | "minecraft:fern", 6 | "minecraft:lily_pad", 7 | "minecraft:pink_petals", 8 | "minecraft:brown_mushroom", 9 | "minecraft:red_mushroom", 10 | "minecraft:lily_pad", 11 | "minecraft:azalea", 12 | "minecraft:flowering_azalea", 13 | "minecraft:moss_carpet", 14 | "#minecraft:flowers", 15 | "#minecraft:replaceable_by_trees" 16 | ] 17 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/fungus_branches.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:crimson_branch", 4 | "dynamictrees:warped_branch" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/fungus_caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:crimson_sapling", 4 | "dynamictrees:warped_sapling" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:acacia_leaves", 4 | "dynamictrees:azalea_leaves", 5 | "dynamictrees:birch_leaves", 6 | "dynamictrees:cherry_leaves", 7 | "dynamictrees:dark_oak_leaves", 8 | "dynamictrees:flowering_azalea_leaves", 9 | "dynamictrees:jungle_leaves", 10 | "dynamictrees:jungle_undergrowth_leaves", 11 | "dynamictrees:mangrove_leaves", 12 | "dynamictrees:oak_leaves", 13 | "dynamictrees:oak_undergrowth_leaves", 14 | "dynamictrees:spruce_leaves" 15 | ] 16 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/roots.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:mangrove_roots" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/saplings.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:acacia_sapling", 4 | "dynamictrees:apple_oak_sapling", 5 | "dynamictrees:azalea_sapling", 6 | "dynamictrees:birch_sapling", 7 | "dynamictrees:cherry_sapling", 8 | "dynamictrees:cocoa_sapling", 9 | "dynamictrees:dark_oak_sapling", 10 | "dynamictrees:jungle_sapling", 11 | "dynamictrees:mangrove_sapling", 12 | "dynamictrees:oak_sapling", 13 | "dynamictrees:spruce_sapling", 14 | "dynamictrees:swamp_oak_sapling", 15 | "dynamictrees:tall_birch_sapling" 16 | ] 17 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/stripped_branches.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:stripped_branches_that_burn", 4 | "#dynamictrees:stripped_fungus_branches" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/stripped_branches_that_burn.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:stripped_acacia_branch", 4 | "dynamictrees:stripped_birch_branch", 5 | "dynamictrees:stripped_cherry_branch", 6 | "dynamictrees:stripped_dark_oak_branch", 7 | "dynamictrees:stripped_jungle_branch", 8 | "dynamictrees:stripped_mangrove_branch", 9 | "dynamictrees:stripped_oak_branch", 10 | "dynamictrees:stripped_spruce_branch" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/stripped_fungus_branches.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:stripped_crimson_branch", 4 | "dynamictrees:stripped_warped_branch" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/blocks/wart_blocks.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:crimson_wart", 4 | "dynamictrees:warped_wart" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/items/branches.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:branches_that_burn", 4 | "#dynamictrees:fungus_branches" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/items/branches_that_burn.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:acacia_branch", 4 | "dynamictrees:birch_branch", 5 | "dynamictrees:cherry_branch", 6 | "dynamictrees:dark_oak_branch", 7 | "dynamictrees:jungle_branch", 8 | "dynamictrees:mangrove_branch", 9 | "dynamictrees:oak_branch", 10 | "dynamictrees:spruce_branch" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/items/fungus_branches.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:crimson_branch", 4 | "dynamictrees:warped_branch" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/items/fungus_caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:crimson_seed", 4 | "dynamictrees:warped_seed" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/tags/items/seeds.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:fungus_caps", 4 | "dynamictrees:acacia_seed", 5 | "dynamictrees:apple_oak_seed", 6 | "dynamictrees:azalea_seed", 7 | "dynamictrees:birch_seed", 8 | "dynamictrees:cherry_seed", 9 | "dynamictrees:cocoa_seed", 10 | "dynamictrees:dark_oak_seed", 11 | "dynamictrees:jungle_seed", 12 | "dynamictrees:mangrove_seed", 13 | "dynamictrees:oak_seed", 14 | "dynamictrees:spruce_seed" 15 | ] 16 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/worldgen/configured_feature/cave_rooted_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "dynamictrees:cave_rooted_tree", 3 | "config": {} 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/worldgen/configured_feature/dynamic_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "dynamictrees:tree", 3 | "config": {} 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/dynamictrees/worldgen/placed_feature/dynamic_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "feature": "dynamictrees:dynamic_tree", 3 | "placement": [] 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/enderman_holdable.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:fungus_caps" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/flower_pots.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:potted_sapling" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/hoglin_repellents.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "dynamictrees:warped_sapling" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:leaves" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/logs.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:branches" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/logs_that_burn.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:branches_that_burn", 4 | "#dynamictrees:stripped_branches_that_burn" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:roots", 4 | "#dynamictrees:aerial_roots_rooty_soil" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/saplings.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:saplings" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/wart_blocks.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:wart_blocks" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/items/saplings.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#dynamictrees:seeds" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/worldgen/template_pool/village/plains/trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "elements": [ 3 | { 4 | "element": { 5 | "disabled": { 6 | "element_type": "minecraft:feature_pool_element", 7 | "feature": "minecraft:oak", 8 | "projection": "rigid" 9 | }, 10 | "element_type": "dynamictrees:cancel_vanilla_village_tree_element", 11 | "enabled": { 12 | "element_type": "dynamictrees:tree_pool_element", 13 | "projection": "terrain_matching", 14 | "species": "dynamictrees:oak" 15 | } 16 | }, 17 | "weight": 1 18 | } 19 | ], 20 | "fallback": "minecraft:empty" 21 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/worldgen/template_pool/village/savanna/trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "elements": [ 3 | { 4 | "element": { 5 | "disabled": { 6 | "element_type": "minecraft:feature_pool_element", 7 | "feature": "minecraft:acacia", 8 | "projection": "rigid" 9 | }, 10 | "element_type": "dynamictrees:cancel_vanilla_village_tree_element", 11 | "enabled": { 12 | "element_type": "dynamictrees:tree_pool_element", 13 | "projection": "terrain_matching", 14 | "species": "dynamictrees:acacia" 15 | } 16 | }, 17 | "weight": 1 18 | } 19 | ], 20 | "fallback": "minecraft:empty" 21 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/worldgen/template_pool/village/snowy/trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "elements": [ 3 | { 4 | "element": { 5 | "disabled": { 6 | "element_type": "minecraft:feature_pool_element", 7 | "feature": "minecraft:spruce", 8 | "projection": "rigid" 9 | }, 10 | "element_type": "dynamictrees:cancel_vanilla_village_tree_element", 11 | "enabled": { 12 | "element_type": "dynamictrees:tree_pool_element", 13 | "projection": "terrain_matching", 14 | "species": "dynamictrees:spruce" 15 | } 16 | }, 17 | "weight": 1 18 | } 19 | ], 20 | "fallback": "minecraft:empty" 21 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/FutureBreakable.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api; 2 | 3 | import net.minecraft.core.BlockPos; 4 | import net.minecraft.world.entity.LivingEntity; 5 | import net.minecraft.world.level.Level; 6 | import net.minecraft.world.level.block.state.BlockState; 7 | 8 | @FunctionalInterface 9 | public interface FutureBreakable { 10 | 11 | void futureBreak(BlockState state, Level world, BlockPos pos, LivingEntity player); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/applier/IfTrueApplier.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.applier; 2 | 3 | /** 4 | * An {@link Applier} that is applied if a corresponding condition is met. This condition is defined separately by the 5 | * invoker of {@link #apply(Object)}. 6 | *

7 | * This is a {@link FunctionalInterface} whose functional method is {@link #apply(Object)}. 8 | * 9 | * @param the type of the object to apply to 10 | * @author Harley O'Connor 11 | */ 12 | @FunctionalInterface 13 | public interface IfTrueApplier { 14 | 15 | /** 16 | * Applies a value to the specified {@code object}. 17 | *

18 | * Should only be invoked when the corresponding condition is met. 19 | * 20 | * @param object the object to apply to 21 | */ 22 | void apply(final O object); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/cell/Cell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.cell; 2 | 3 | import net.minecraft.core.Direction; 4 | 5 | public interface Cell { 6 | 7 | /** 8 | * @return The actual value of the cell. 9 | */ 10 | int getValue(); 11 | 12 | /** 13 | * Gets the value the cell returns for the given side. 14 | * 15 | * @param side The side's {@link Direction}. 16 | * @return The value for the given side. 17 | */ 18 | int getValueFromSide(Direction side); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/cell/CellNull.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.cell; 2 | 3 | import net.minecraft.core.Direction; 4 | 5 | /** 6 | * Cell that always returns 0 7 | * 8 | * @author ferreusveritas 9 | */ 10 | public class CellNull implements Cell { 11 | 12 | public static final CellNull NULL_CELL = new CellNull(); 13 | 14 | @Override 15 | public int getValue() { 16 | return 0; 17 | } 18 | 19 | @Override 20 | public int getValueFromSide(Direction side) { 21 | return 0; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/cell/CellSolver.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.cell; 2 | 3 | public interface CellSolver { 4 | 5 | /** 6 | * Solves the center cell from values of the surrounding 6 cells. 7 | * 8 | * @param cells An array of 6 cells, one for each of the 6 sides of a cube. 9 | * @return the calculated solution for the center cell. 10 | */ 11 | int solve(Cell[] cells); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/configuration/Configurable.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.configuration; 2 | 3 | import java.util.Set; 4 | 5 | /** 6 | * @author Harley O'Connor 7 | */ 8 | public interface Configurable { 9 | 10 | /** 11 | * Checks if the given {@link ConfigurationProperty} is registered (and so can be set to) this {@link 12 | * Configurable}. 13 | * 14 | * @param property The {@link ConfigurationProperty} to check for. 15 | * @return {@code true} if it is registered, {@code false} if not. 16 | */ 17 | boolean isPropertyRegistered(ConfigurationProperty property); 18 | 19 | Set> getRegisteredProperties(); 20 | 21 | Configuration getDefaultConfiguration(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/configuration/ConfigurationTemplate.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.configuration; 2 | 3 | import com.ferreusveritas.dynamictrees.deserialisation.result.Result; 4 | 5 | /** 6 | * @author Harley O'Connor 7 | */ 8 | public interface ConfigurationTemplate> { 9 | 10 | Result apply(PropertiesAccessor properties); 11 | 12 | Iterable> getRegisteredProperties(); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/configuration/CustomConfigurationProperty.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.configuration; 2 | 3 | /** 4 | * @author Harley O'Connor 5 | */ 6 | public final class CustomConfigurationProperty extends ConfigurationProperty { 7 | 8 | CustomConfigurationProperty(String key, Class type) { 9 | super(key, type); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/configuration/PropertiesAccessor.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.configuration; 2 | 3 | import javax.annotation.Nullable; 4 | 5 | /** 6 | * @author Harley O'Connor 7 | */ 8 | public interface PropertiesAccessor { 9 | 10 | @Nullable 11 | V get(ConfigurationProperty property); 12 | 13 | boolean has(ConfigurationProperty property); 14 | 15 | void forEach(IterationAction action); 16 | 17 | interface IterationAction { 18 | void apply(ConfigurationProperty property, V value); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/configuration/TemplateRegistry.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.configuration; 2 | 3 | import com.google.common.collect.Maps; 4 | import net.minecraft.resources.ResourceLocation; 5 | 6 | import java.util.Map; 7 | import java.util.Optional; 8 | 9 | /** 10 | * @author Harley O'Connor 11 | */ 12 | public class TemplateRegistry> { 13 | 14 | private final Map> templates = Maps.newHashMap(); 15 | 16 | public void register(ResourceLocation name, ConfigurationTemplate template) { 17 | this.templates.put(name, template); 18 | } 19 | 20 | public Optional> get(ResourceLocation name) { 21 | return Optional.ofNullable(this.templates.get(name)); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/configuration/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.api.configuration; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/data/StrippedBranchStateGenerator.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ferreusveritas.dynamictrees.api.data; 3 | 4 | import com.ferreusveritas.dynamictrees.tree.family.Family; 5 | 6 | /** 7 | * @author Harley O'Connor 8 | */ 9 | public class StrippedBranchStateGenerator extends BranchStateGenerator { 10 | 11 | @Override 12 | public Dependencies gatherDependencies(Family input) { 13 | return new Dependencies() 14 | .append(BRANCH, input.getStrippedBranch()) 15 | .append(PRIMITIVE_LOG, input.getPrimitiveStrippedLog()); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/data/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.api.data; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/event/AddResourceLoadersEvent.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.event; 2 | 3 | import com.ferreusveritas.dynamictrees.api.resource.TreeResourceManager; 4 | import net.minecraftforge.eventbus.api.Event; 5 | import net.minecraftforge.fml.event.IModBusEvent; 6 | 7 | /** 8 | * @author Harley O'Connor 9 | */ 10 | public final class AddResourceLoadersEvent extends Event implements IModBusEvent { 11 | 12 | private final TreeResourceManager resourceManager; 13 | 14 | public AddResourceLoadersEvent(TreeResourceManager resourceManager) { 15 | this.resourceManager = resourceManager; 16 | } 17 | 18 | public TreeResourceManager getResourceManager() { 19 | return resourceManager; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/network/NodeInspector.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.network; 2 | 3 | import net.minecraft.core.BlockPos; 4 | import net.minecraft.core.Direction; 5 | import net.minecraft.world.level.LevelAccessor; 6 | import net.minecraft.world.level.block.state.BlockState; 7 | 8 | public interface NodeInspector { 9 | 10 | boolean run(BlockState state, LevelAccessor level, BlockPos pos, Direction fromDir); 11 | 12 | boolean returnRun(BlockState state, LevelAccessor level, BlockPos pos, Direction fromDir); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.api; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/registry/RegistryEvent.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.registry; 2 | 3 | import net.minecraftforge.eventbus.api.GenericEvent; 4 | import net.minecraftforge.fml.event.IModBusEvent; 5 | 6 | 7 | public final class RegistryEvent> extends GenericEvent implements IModBusEvent { 8 | 9 | private final Registry registry; 10 | 11 | public RegistryEvent(final Registry registry) { 12 | super(registry.getType()); 13 | this.registry = registry; 14 | } 15 | 16 | public Registry getRegistry() { 17 | return registry; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/resource/loading/ApplicationException.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.resource.loading; 2 | 3 | /** 4 | * Thrown to indicate that applying a loaded resource failed. 5 | * 6 | * @author Harley O'Connor 7 | */ 8 | public final class ApplicationException extends Exception { 9 | 10 | public ApplicationException(String message) { 11 | super(message); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/resource/loading/ApplierResourceLoader.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.resource.loading; 2 | 3 | import com.ferreusveritas.dynamictrees.api.applier.ApplierRegistryEvent; 4 | import net.minecraftforge.fml.ModLoader; 5 | 6 | /** 7 | * @author Harley O'Connor 8 | */ 9 | public interface ApplierResourceLoader

extends ResourceLoader

{ 10 | 11 | void registerAppliers(); 12 | 13 | static void postApplierEvent(ApplierRegistryEvent event) { 14 | ModLoader.get().postEvent(event); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/resource/loading/preparation/PreparationException.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.resource.loading.preparation; 2 | 3 | /** 4 | * @author Harley O'Connor 5 | */ 6 | public class PreparationException extends Exception { 7 | 8 | public PreparationException(String message) { 9 | super(message); 10 | } 11 | 12 | public PreparationException(Throwable cause) { 13 | super(cause); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/resource/loading/preparation/ResourcePreparer.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.resource.loading.preparation; 2 | 3 | import com.ferreusveritas.dynamictrees.api.resource.ResourceAccessor; 4 | import net.minecraft.server.packs.resources.ResourceManager; 5 | 6 | /** 7 | * @author Harley O'Connor 8 | */ 9 | public interface ResourcePreparer { 10 | 11 | ResourceAccessor prepare(ResourceManager resourceManager); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/season/ClimateZoneType.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.season; 2 | 3 | public enum ClimateZoneType { 4 | NONE, 5 | TEMPERATE, 6 | TROPICAL 7 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/substance/Emptiable.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.substance; 2 | 3 | import net.minecraft.world.item.ItemStack; 4 | 5 | /** 6 | * An emptiable is a container that contains a substance that when consumed leaves a reusable container. Such as a 7 | * potion and a glass bottle. 8 | * 9 | * @author ferreusveritas 10 | */ 11 | @FunctionalInterface 12 | public interface Emptiable { 13 | 14 | /** 15 | * The container item this object returns when a substance is emptied. 16 | * 17 | * @return An {@link ItemStack} for the item. 18 | */ 19 | ItemStack getEmptyContainer(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/substance/SubstanceEffectProvider.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.substance; 2 | 3 | import net.minecraft.world.item.ItemStack; 4 | 5 | /** 6 | * An interface for items that can have an effect on trees when right clicked. Such as a tree potion. 7 | * 8 | * @author ferreusveritas 9 | */ 10 | @FunctionalInterface 11 | public interface SubstanceEffectProvider { 12 | 13 | SubstanceEffect getSubstanceEffect(ItemStack itemStack); 14 | 15 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/worldgen/PoissonDiscProvider.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.worldgen; 2 | 3 | 4 | import com.ferreusveritas.dynamictrees.systems.poissondisc.PoissonDisc; 5 | 6 | import java.util.List; 7 | 8 | public interface PoissonDiscProvider { 9 | 10 | List getPoissonDiscs(int chunkX, int chunkY, int chunkZ); 11 | 12 | byte[] getChunkPoissonData(int chunkX, int chunkY, int chunkZ); 13 | 14 | void setChunkPoissonData(int chunkX, int chunkY, int chunkZ, byte[] circleData); 15 | 16 | void unloadChunkPoissonData(int chunkX, int chunkY, int chunkZ); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/api/worldgen/RadiusCoordinator.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.api.worldgen; 2 | 3 | public interface RadiusCoordinator { 4 | 5 | int getRadiusAtCoords(int x, int z); 6 | 7 | boolean runPass(int chunkX, int chunkZ, int pass); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/block/branch/Musable.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.block.branch; 2 | 3 | import net.minecraft.core.BlockPos; 4 | import net.minecraft.world.level.BlockGetter; 5 | import net.minecraft.world.level.block.state.BlockState; 6 | 7 | @FunctionalInterface 8 | public interface Musable { 9 | boolean isMusable(BlockGetter level, BlockState state, BlockPos pos); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/block/branch/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.block.branch; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/block/leaves/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.block.leaves; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/block/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.block; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/block/rooty/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.block.rooty; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/AcaciaLeafCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | public class AcaciaLeafCell extends MatrixCell { 4 | 5 | public AcaciaLeafCell(int value) { 6 | super(value, valMap); 7 | } 8 | 9 | static final byte[] valMap = { 10 | 0, 0, 0, 0, 0, 0, 0, 0, //D Maps * -> 0 11 | 0, 0, 0, 3, 3, 0, 0, 0, //U Maps 3 -> 3, 4 -> 3, * -> 0 12 | 0, 1, 2, 3, 4, 0, 0, 0, //N Maps * -> * 13 | 0, 1, 2, 3, 4, 0, 0, 0, //S Maps * -> * 14 | 0, 1, 2, 3, 4, 0, 0, 0, //W Maps * -> * 15 | 0, 1, 2, 3, 4, 0, 0, 0 //E Maps * -> * 16 | }; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/ConiferBranchCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | import com.ferreusveritas.dynamictrees.api.cell.Cell; 4 | import net.minecraft.core.Direction; 5 | 6 | public class ConiferBranchCell implements Cell { 7 | 8 | @Override 9 | public int getValue() { 10 | return 5; 11 | } 12 | 13 | static final int[] map = {2, 2, 3, 3, 3, 3}; 14 | 15 | @Override 16 | public int getValueFromSide(Direction side) { 17 | return map[side.ordinal()]; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/ConiferLeafCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | public class ConiferLeafCell extends MatrixCell { 4 | 5 | public ConiferLeafCell(int value) { 6 | super(value, valMap); 7 | } 8 | 9 | static final byte[] valMap = { 10 | 0, 0, 0, 0, 0, 0, 0, 0, //D Maps * -> 0 11 | 0, 1, 2, 2, 4, 0, 0, 0, //U Maps 3 -> 2, 4 -> 4, * -> * 12 | 0, 1, 2, 0, 2, 0, 0, 0, //N Maps 3 -> 0, 4 -> 2, * -> * 13 | 0, 1, 2, 0, 2, 0, 0, 0, //S Maps 3 -> 0, 4 -> 2, * -> * 14 | 0, 1, 2, 0, 2, 0, 0, 0, //W Maps 3 -> 0, 4 -> 2, * -> * 15 | 0, 1, 2, 0, 2, 0, 0, 0 //E Maps 3 -> 0, 4 -> 2, * -> * 16 | }; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/ConiferTopBranchCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | import com.ferreusveritas.dynamictrees.api.cell.Cell; 4 | import net.minecraft.core.Direction; 5 | 6 | public class ConiferTopBranchCell implements Cell { 7 | 8 | @Override 9 | public int getValue() { 10 | return 5; 11 | } 12 | 13 | static final int[] map = {2, 5, 3, 3, 3, 3}; 14 | 15 | //Used for giving more hydration if the below block is also a branch 16 | @Override 17 | public int getValueFromSide(Direction side) { 18 | return map[side.ordinal()]; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/DarkOakLeafCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | public class DarkOakLeafCell extends MatrixCell { 4 | 5 | public DarkOakLeafCell(int value) { 6 | super(value, valMap); 7 | } 8 | 9 | static final byte[] valMap = { 10 | 0, 1, 2, 3, 3, 0, 0, 0, //D Maps 4 -> 3, * -> * 11 | 0, 1, 2, 3, 3, 0, 0, 0, //U Maps 4 -> 3, * -> * 12 | 0, 1, 2, 3, 4, 0, 0, 0, //N Maps * -> * 13 | 0, 1, 2, 3, 4, 0, 0, 0, //S Maps * -> * 14 | 0, 1, 2, 3, 4, 0, 0, 0, //W Maps * -> * 15 | 0, 1, 2, 3, 4, 0, 0, 0 //E Maps * -> * 16 | }; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/MatrixCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | import com.ferreusveritas.dynamictrees.api.cell.Cell; 4 | import net.minecraft.core.Direction; 5 | 6 | public class MatrixCell implements Cell { 7 | 8 | private final int value; 9 | private final byte[] valMap; 10 | 11 | public MatrixCell(int value, byte[] valMap) { 12 | this.value = value; 13 | this.valMap = valMap; 14 | } 15 | 16 | @Override 17 | public int getValue() { 18 | return value; 19 | } 20 | 21 | @Override 22 | public int getValueFromSide(Direction side) { 23 | return valMap[(side.ordinal() << 3) + value]; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/MetadataCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | public class MetadataCell { 4 | 5 | //Cell Kit Metadata values 6 | public static final int NONE = 0; 7 | public static final int TOP_BRANCH = 1; 8 | 9 | /** 10 | * @param radius Radius value to be encoded in the lower 8 bits 11 | * @param meta Metadata to be encoded in the upper 24 bits 12 | * @return encoded value 13 | */ 14 | public static int radiusAndMeta(int radius, int meta) { 15 | return radius & 0xff | meta << 8; 16 | } 17 | 18 | public static int getRadius(int radiusMeta) { 19 | return radiusMeta & 0xFF; 20 | } 21 | 22 | public static int getMeta(int radiusMeta) { 23 | return radiusMeta >> 8; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/NormalCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | import com.ferreusveritas.dynamictrees.api.cell.Cell; 4 | import net.minecraft.core.Direction; 5 | 6 | /** 7 | * Cell that simply returns it's value 8 | * 9 | * @author ferreusveritas 10 | */ 11 | public class NormalCell implements Cell { 12 | 13 | private final int value; 14 | 15 | public NormalCell(int value) { 16 | this.value = value; 17 | } 18 | 19 | @Override 20 | public int getValue() { 21 | return value; 22 | } 23 | 24 | @Override 25 | public int getValueFromSide(Direction side) { 26 | return value; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/cell/PalmFrondCell.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.cell; 2 | 3 | public class PalmFrondCell extends MatrixCell { 4 | 5 | public PalmFrondCell(int value) { 6 | super(value, valMap); 7 | } 8 | 9 | static final byte[] valMap = { 10 | 0, 0, 0, 0, 0, 0, 0, 0, //D Maps * -> 0 11 | 0, 0, 0, 0, 4, 0, 0, 0, //U Maps 4 -> 4, * -> 0 12 | 0, 1, 2, 3, 0, 0, 0, 0, //N Maps 4 -> 0, * -> * 13 | 0, 1, 2, 3, 0, 0, 0, 0, //S Maps 4 -> 0, * -> * 14 | 0, 1, 2, 3, 0, 0, 0, 0, //W Maps 4 -> 0, * -> * 15 | 0, 1, 2, 3, 0, 0, 0, 0 //E Maps 4 -> 0, * -> * 16 | }; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/command/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.command; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/compat/season/NullSeasonProvider.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.compat.season; 2 | 3 | import net.minecraft.core.BlockPos; 4 | import net.minecraft.world.level.Level; 5 | 6 | /** 7 | * Season provider that does nothing at all 8 | * 9 | * @author ferreusveritas 10 | */ 11 | public class NullSeasonProvider implements SeasonProvider { 12 | 13 | public NullSeasonProvider() { 14 | } 15 | 16 | @Override 17 | public Float getSeasonValue(Level level, BlockPos pos) { 18 | return null; 19 | } 20 | 21 | @Override 22 | public void updateTick(Level level, long dayTime) { 23 | } 24 | 25 | @Override 26 | public boolean shouldSnowMelt(Level level, BlockPos pos) { 27 | return false; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/compat/waila/WailaOther.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.compat.waila; 2 | 3 | public class WailaOther { 4 | 5 | public static boolean invalid = false; 6 | 7 | public static void invalidateWailaPosition() { 8 | invalid = true; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/data/provider/DTDataProvider.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.data.provider; 2 | 3 | import net.minecraft.resources.ResourceLocation; 4 | 5 | import static com.ferreusveritas.dynamictrees.util.ResourceLocationUtils.prefix; 6 | 7 | /** 8 | * @author Harley O'Connor 9 | */ 10 | public interface DTDataProvider { 11 | 12 | default ResourceLocation block(ResourceLocation blockLocation) { 13 | return prefix(blockLocation, "block/"); 14 | } 15 | 16 | default ResourceLocation item(ResourceLocation resourceLocation) { 17 | return prefix(resourceLocation, "item/"); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/deserialisation/DeserialisationException.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.deserialisation; 2 | 3 | /** 4 | * Thrown to indicate that there was an error whilst deserialising a type. 5 | * 6 | *

This is a checked exception that should be caught and logged with the value returned by {@link #getMessage()}. 7 | *

8 | * 9 | * @author Harley O'Connor 10 | */ 11 | public class DeserialisationException extends Exception { 12 | 13 | public DeserialisationException(String message) { 14 | super(message); 15 | } 16 | 17 | public static DeserialisationException error(String message) { 18 | return new DeserialisationException(message); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/deserialisation/NoSuchDeserialiserException.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.deserialisation; 2 | 3 | /** 4 | * Thrown to indicate that a {@link Deserialiser} for a specified output type did not exist. 5 | * 6 | * @author Harley O'Connor 7 | */ 8 | public final class NoSuchDeserialiserException extends RuntimeException { 9 | 10 | /** 11 | * Constructs a {@code NoSuchDeserialiserException} with the specified detail {@code message}. 12 | * 13 | * @param message the detail message 14 | */ 15 | public NoSuchDeserialiserException(String message) { 16 | super(message); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/deserialisation/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.deserialisation; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/entity/animation/DataAnimationHandler.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.entity.animation; 2 | 3 | public class DataAnimationHandler { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/item/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.item; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/loot/DTLoot.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.loot; 2 | 3 | /** 4 | * @author Harley O'Connor 5 | */ 6 | public final class DTLoot { 7 | 8 | /** 9 | * Invoked to initialise static fields. 10 | */ 11 | public static void load() { 12 | DTLootParameterSets.load(); 13 | DTLootContextParams.load(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/loot/function/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.loot.function; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/models/ModelTracker.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.models; 2 | 3 | public interface ModelTracker { 4 | 5 | default void modelCleanup() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/models/baked/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.models.baked; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/models/geometry/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.models.geometry; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/models/loader/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.models.loader; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/models/modeldata/RootModelConnections.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/java/com/ferreusveritas/dynamictrees/models/modeldata/RootModelConnections.java -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/models/modeldata/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.models.modeldata; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/resources/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.resources; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/systems/genfeature/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.systems.genfeature; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/systems/poissondisc/Vec2iPCA.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.systems.poissondisc; 2 | 3 | /** 4 | * A variant of Vec2i that recomputes radial angle 5 | * 6 | * @author ferreusveritas 7 | */ 8 | public class Vec2iPCA extends Vec2i { 9 | 10 | double radians; 11 | 12 | public Vec2iPCA(int x, int z, boolean tight) { 13 | super(x, z, tight); 14 | } 15 | 16 | @Override 17 | public Vec2i set(int x, int z) { 18 | super.set(x, z); 19 | radians = super.angle(); 20 | return this; 21 | } 22 | 23 | @Override 24 | public double angle() { 25 | return radians; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/tree/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.tree; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/AlternateLinkedHashSet.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import java.util.LinkedHashSet; 4 | 5 | /** 6 | * An extension of {@link java.util.LinkedHashSet} which changes the order on insertion. This means that if an element 7 | * is added, instead of keeping the original insertion order it will be moved to the back of the set. 8 | * 9 | * @author Harley O'Connor 10 | */ 11 | public final class AlternateLinkedHashSet extends LinkedHashSet { 12 | 13 | @Override 14 | public boolean add(final E e) { 15 | final boolean previouslyPresent = this.remove(e); 16 | super.add(e); 17 | return !previouslyPresent; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/BranchConnectionData.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import net.minecraft.world.level.block.state.BlockState; 4 | 5 | public class BranchConnectionData { 6 | 7 | private final BlockState blockState; 8 | private final Connections connections; 9 | 10 | public BranchConnectionData(BlockState blockState, Connections connections) { 11 | this.blockState = blockState; 12 | this.connections = connections; 13 | } 14 | 15 | public BlockState getBlockState() { 16 | return blockState; 17 | } 18 | 19 | public Connections getConnections() { 20 | return connections; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/CommonSetup.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | import java.util.function.Consumer; 8 | 9 | /** 10 | * @author Harley O'Connor 11 | */ 12 | public final class CommonSetup { 13 | 14 | private static final List> SETUP_HANDLERS = new ArrayList<>(); 15 | 16 | public static void runOnCommonSetup(Consumer handler) { 17 | SETUP_HANDLERS.add(handler); 18 | } 19 | 20 | public static void onCommonSetup(final FMLCommonSetupEvent event) { 21 | SETUP_HANDLERS.forEach(consumer -> consumer.accept(event)); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/IgnoreThrowable.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | /** 4 | * Thrown to indicate that the subroutine was purposefully halted (not due to any form of error or exception). 5 | * 6 | * @author Harley O'Connor 7 | */ 8 | public final class IgnoreThrowable extends Throwable { 9 | 10 | public static final IgnoreThrowable INSTANCE = new IgnoreThrowable(); 11 | 12 | private IgnoreThrowable() { 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/LazyMutableValue.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | /** 4 | * @author Harley O'Connor 5 | */ 6 | public final class LazyMutableValue { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/LazyValue.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import java.util.function.Supplier; 4 | 5 | /** 6 | * @author Harley O'Connor 7 | */ 8 | @FunctionalInterface 9 | public interface LazyValue { 10 | 11 | T get(); 12 | 13 | static LazyValue of(T value) { 14 | return () -> value; 15 | } 16 | 17 | static LazyValue supplied(Supplier supplier) { 18 | return new SuppliedLazyValue<>(supplier); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/MutableLazyValue.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import javax.annotation.Nonnull; 4 | import java.util.function.Supplier; 5 | 6 | /** 7 | * @author Harley O'Connor 8 | */ 9 | public interface MutableLazyValue { 10 | 11 | T get(); 12 | 13 | void reset(Supplier supplier); 14 | 15 | void set(@Nonnull T value); 16 | 17 | static MutableLazyValue supplied(Supplier supplier) { 18 | return new MutableSuppliedLazyValue<>(supplier); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/MutableSuppliedLazyValue.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import javax.annotation.Nonnull; 4 | import java.util.Objects; 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * @author Harley O'Connor 9 | */ 10 | public final class MutableSuppliedLazyValue extends SuppliedLazyValue implements MutableLazyValue { 11 | 12 | public MutableSuppliedLazyValue(Supplier supplier) { 13 | super(supplier); 14 | } 15 | 16 | @Override 17 | public void reset(Supplier supplier) { 18 | this.supplier = supplier; 19 | this.object = null; 20 | } 21 | 22 | @Override 23 | public void set(@Nonnull T value) { 24 | Objects.requireNonNull(value); 25 | this.object = value; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/RayTraceCollision.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | @FunctionalInterface 4 | public interface RayTraceCollision { 5 | boolean isRayTraceCollidable(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/SuppliedLazyValue.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util; 2 | 3 | import java.util.function.Supplier; 4 | 5 | /** 6 | * @author Harley O'Connor 7 | */ 8 | public class SuppliedLazyValue implements LazyValue { 9 | 10 | protected T object; 11 | protected Supplier supplier; 12 | 13 | SuppliedLazyValue(Supplier supplier) { 14 | this.supplier = supplier; 15 | } 16 | 17 | public T get() { 18 | if (this.object == null) { 19 | this.object = supplier.get(); 20 | } 21 | return this.object; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/function/BiomePredicate.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util.function; 2 | 3 | import com.ferreusveritas.dynamictrees.api.configuration.ConfigurationProperty; 4 | import net.minecraft.core.Holder; 5 | import net.minecraft.world.level.biome.Biome; 6 | 7 | import java.util.function.Predicate; 8 | 9 | /** 10 | * A {@link Predicate} that tests if something should happen in a {@link Biome}. Mainly used as a {@link 11 | * ConfigurationProperty}. 12 | * 13 | * @author Harley O'Connor 14 | */ 15 | @FunctionalInterface 16 | public interface BiomePredicate extends Predicate> { 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/function/CanGrowPredicate.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util.function; 2 | 3 | import com.ferreusveritas.dynamictrees.api.configuration.ConfigurationProperty; 4 | import net.minecraft.core.BlockPos; 5 | import net.minecraft.world.level.LevelAccessor; 6 | 7 | import java.util.function.BiPredicate; 8 | 9 | /** 10 | * A {@link BiPredicate} that tests if something should grow based on the {@link IWorld} and {@link BlockPos}. Mainly 11 | * used as a {@link ConfigurationProperty}. 12 | * 13 | * @author Harley O'Connor 14 | */ 15 | @FunctionalInterface 16 | public interface CanGrowPredicate extends BiPredicate { 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/function/TetraFunction.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util.function; 2 | 3 | /** 4 | * Similar to {@link java.util.function.BiFunction}, but takes 4 parameters in apply. 5 | */ 6 | @FunctionalInterface 7 | public interface TetraFunction { 8 | R apply(T t, U u, V v, S r); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/function/ThrowableBiFunction.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util.function; 2 | 3 | import java.util.function.BiFunction; 4 | 5 | /** 6 | * Copy of {@link BiFunction}, except {@link #apply(Object, Object)} throws {@link T}. 7 | * 8 | * @author Harley O'Connor 9 | */ 10 | @FunctionalInterface 11 | public interface ThrowableBiFunction { 12 | 13 | R apply(A a, B b) throws T; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/function/ThrowableFunction.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util.function; 2 | 3 | import java.util.function.Function; 4 | 5 | /** 6 | * Copy of {@link Function}, except {@link #apply(Object)} throws {@link T}. 7 | * 8 | * @author Harley O'Connor 9 | */ 10 | @FunctionalInterface 11 | public interface ThrowableFunction { 12 | 13 | R apply(I i) throws T; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/function/TriFunction.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.util.function; 2 | 3 | /** 4 | * Similar to {@link java.util.function.BiFunction}, but takes 3 parameters in apply. 5 | * 6 | * @author Harley O'Connor 7 | */ 8 | @FunctionalInterface 9 | public interface TriFunction { 10 | 11 | /** 12 | * Applies this function to the given arguments. 13 | * 14 | * @param t the first function argument 15 | * @param u the second function argument 16 | * @return the function result 17 | */ 18 | S apply(T t, U u, R r); 19 | 20 | } -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/util/package-info.java: -------------------------------------------------------------------------------- 1 | @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.util; 3 | 4 | import net.minecraft.MethodsReturnNonnullByDefault; 5 | 6 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/worldgen/deserialisation/JsonBiomeDatabaseDeserialiser.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.worldgen.deserialisation; 2 | 3 | import com.ferreusveritas.dynamictrees.deserialisation.JsonDeserialiser; 4 | 5 | /** 6 | * @author Harley O'Connor 7 | */ 8 | public interface JsonBiomeDatabaseDeserialiser extends JsonDeserialiser { 9 | 10 | String DEFAULT = "..."; 11 | 12 | String STATIC = "static"; 13 | String RANDOM = "random"; 14 | String MATH = "math"; 15 | String SCALE = "scale"; 16 | 17 | default boolean isDefault(String candidate) { 18 | return DEFAULT.equals(candidate); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/worldgen/deserialisation/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault 2 | @MethodsReturnNonnullByDefault 3 | package com.ferreusveritas.dynamictrees.worldgen.deserialisation; 4 | 5 | import net.minecraft.MethodsReturnNonnullByDefault; 6 | 7 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/worldgen/featurecancellation/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.worldgen.featurecancellation; 3 | 4 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/worldgen/package-info.java: -------------------------------------------------------------------------------- 1 | @ParametersAreNonnullByDefault 2 | package com.ferreusveritas.dynamictrees.worldgen; 3 | 4 | import javax.annotation.ParametersAreNonnullByDefault; -------------------------------------------------------------------------------- /src/main/java/com/ferreusveritas/dynamictrees/worldgen/structure/TemplatePoolModifier.java: -------------------------------------------------------------------------------- 1 | package com.ferreusveritas.dynamictrees.worldgen.structure; 2 | 3 | import net.minecraft.data.worldgen.BootstapContext; 4 | import net.minecraft.world.level.levelgen.structure.pools.StructurePoolElement; 5 | import net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool; 6 | 7 | /** 8 | * @author Harley O'Connor 9 | */ 10 | public interface TemplatePoolModifier { 11 | TemplatePoolModifier replaceTemplate(int index, StructurePoolElement element); 12 | 13 | TemplatePoolModifier removeTemplate(int index); 14 | 15 | void removeAllTemplates(); 16 | 17 | void registerPool(BootstapContext context); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/blockstates/apple.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "age=0": { "model": "dynamictrees:block/fruit/apple_age0" }, 4 | "age=1": { "model": "dynamictrees:block/fruit/apple_age1" }, 5 | "age=2": { "model": "dynamictrees:block/fruit/apple_age2" }, 6 | "age=3": { "model": "dynamictrees:block/fruit/apple_age3" } 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/blockstates/potted_sapling.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { "model": "block/flower_pot" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/blockstates/trunk_shell.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { "model": "dynamictrees:block/empty" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/block/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | }, 4 | "elements": [ 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/block/smartmodel/palm/core_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "#core_bottom" 4 | }, 5 | "elements": [ 6 | { "from": [ 4, 0, 4 ], 7 | "to": [ 12, 16, 12 ], 8 | "faces": { 9 | "down": { "uv": [ 4, 4, 12, 12 ], "texture": "#core_bottom", "cullface": "down" }, 10 | "up": { "uv": [ 4, 4, 12, 12 ], "texture": "#core_bottom", "cullface": "up" }, 11 | "north": { "uv": [ 4, 0, 12, 16 ], "texture": "#core_bottom" }, 12 | "south": { "uv": [ 4, 0, 12, 16 ], "texture": "#core_bottom" }, 13 | "west": { "uv": [ 4, 0, 12, 16 ], "texture": "#core_bottom" }, 14 | "east": { "uv": [ 4, 0, 12, 16 ], "texture": "#core_bottom" } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/block/tall_slab.json: -------------------------------------------------------------------------------- 1 | { "parent": "block/block", 2 | "textures": { 3 | "particle": "#side" 4 | }, 5 | "elements": [ 6 | { "from": [ 0, 0, 0 ], 7 | "to": [ 16, 12, 16 ], 8 | "faces": { 9 | "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" }, 10 | "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" }, 11 | "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "north" }, 12 | "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "south" }, 13 | "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "west" }, 14 | "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#side", "cullface": "east" } 15 | } 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/item/dendro_potion.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/potion" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/item/dirt_bucket.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0":"dynamictrees:item/dirt_bucket" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/item/manual.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0":"dynamictrees:item/manual" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/item/staff.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0":"dynamictrees:item/staff_handle", 5 | "layer1":"dynamictrees:item/staff_overlay", 6 | "layer2":"dynamictrees:item/staff_glimmer" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/models/item/standard_seed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent":"item/generated" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/en_us/categories/mechanics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mechanics", 3 | "sortnum": 2, 4 | "description": "These entries document the features and mechanics of Dynamic Trees.", 5 | "icon": "dynamictrees:dirt_bucket" 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/en_us/categories/potions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Potions", 3 | "sortnum": 3, 4 | "description": "These entries document the brewing recipes for the potions.", 5 | "icon": "dynamictrees:dendro_potion" 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/en_us/categories/trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Trees", 3 | "sortnum": 1, 4 | "description": "These entries document some trees and their characteristics.", 5 | "icon": "dynamictrees:oak_seed" 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/en_us/entries/mechanics/rooty_soil.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rooty Soil", 3 | "read_by_default": "true", 4 | "icon": "minecraft:grass_block", 5 | "category": "dynamictrees:mechanics", 6 | "sortnum": 2, 7 | "pages": [ 8 | { 9 | "type": "text", 10 | "title": "Rooty Soil", 11 | "text": "- Provides nutrients to trees and can be depleted over time.$(br2)- Applying bone meal will increase soil fertility and allows the tree to grow past its mature state.$(br2)- Comparators can be used to sense soil fertility level." 12 | }, 13 | { 14 | "type": "image", 15 | "images": [ 16 | "dynamictrees:textures/patchouli/images/rooty_soil.png" 17 | ], 18 | "text": "Rooty grass block of a birch tree.", 19 | "border": true 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/en_us/entries/potions/depletion_potion.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Potion of Depletion", 3 | "icon": "dynamictrees:dendro_potion{potion_index:1}", 4 | "category": "dynamictrees:potions", 5 | "sortnum": 2, 6 | "pages": [ 7 | { 8 | "type": "dynamictrees:brewing", 9 | "title": "Potion of Depletion", 10 | "ingredient": "minecraft:slime_ball", 11 | "bottle": "dynamictrees:dendro_potion", 12 | "output": "dynamictrees:dendro_potion{potion_index:1}", 13 | "text": "This potion depletes the soil and causes the tree to stop growing.$(br2)Useful to decorate with smaller trees." 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/categories/mechanics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "仕組み", 3 | "sortnum": 2, 4 | "description": "この章ではDynamic Treesの特徴や動作の仕組みを記載しています。", 5 | "icon": "dynamictrees:dirt_bucket" 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/categories/potions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ポーション", 3 | "sortnum": 3, 4 | "description": "この章ではポーションの醸造レシピを記載しています。", 5 | "icon": "dynamictrees:dendro_potion" 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/categories/trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "樹木", 3 | "sortnum": 1, 4 | "description": "この章では一部の樹木とその特徴を記載しています。", 5 | "icon": "dynamictrees:oak_seed" 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/entries/mechanics/rooty_soil.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "根の土壌", 3 | "read_by_default": "true", 4 | "icon": "minecraft:grass_block", 5 | "category": "dynamictrees:mechanics", 6 | "sortnum": 2, 7 | "pages": [ 8 | { 9 | "type": "text", 10 | "title": "根の土壌", 11 | "text": "- 樹木に栄養を提供するが、時間経過とともに枯渇することがあります。$(br2)- 骨粉を使用すると、土壌の肥沃度を高め、樹木が成熟状態を超えて成長することができます。$(br2)- コンパレーターを使用して土壌肥沃度を感知することができます。" 12 | }, 13 | { 14 | "type": "image", 15 | "images": [ 16 | "dynamictrees:textures/patchouli/images/rooty_soil.png" 17 | ], 18 | "text": "シラカバの根付いた草ブロック。", 19 | "border": true 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/entries/mechanics/staff.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ウッドランドの杖", 3 | "read_by_default": "true", 4 | "icon": "dynamictrees:staff", 5 | "category": "dynamictrees:mechanics", 6 | "sortnum": 3, 7 | "pages": [ 8 | { 9 | "type": "spotlight", 10 | "item": "dynamictrees:staff", 11 | "title": "ウッドランドの杖", 12 | "text": "ウッドランドの杖は樹木の状態をコピー&ペーストできるクリエイティブツールです。$(br2)/dt createstaff コマンドを使用するか、クリエイティブメニューから入手できます。" 13 | }, 14 | { 15 | "type": "text", 16 | "text": "右クリックで樹木を操作して対象の樹種を設定/リセットしたり、シフト右クリックで樹木とJoCodeを設定/リセットできます。$(br2)JoCodeは、樹木の形状を圧縮して記述するもので、樹種に依存しません。杖を使用すると、このコードがクリップボードにコピーされます。$(br2)これはクリエイティブツールですが、収穫レベル3の斧としても機能し、樹木を素早く切り倒すことができます。" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/entries/potions/depletion_potion.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "土壌枯渇のポーション", 3 | "icon": "dynamictrees:dendro_potion{potion_index:1}", 4 | "category": "dynamictrees:potions", 5 | "sortnum": 2, 6 | "pages": [ 7 | { 8 | "type": "dynamictrees:brewing", 9 | "title": "土壌枯渇のポーション", 10 | "ingredient": "minecraft:slime_ball", 11 | "bottle": "dynamictrees:dendro_potion", 12 | "output": "dynamictrees:dendro_potion{potion_index:1}", 13 | "text": "このポーションは土壌を枯渇させ、樹木の成長を停止させます。$(br2)装飾用の小さい木が欲しい時に役立ちます。" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/patchouli_books/guide/ja_jp/entries/trees/apple_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "リンゴの木", 3 | "icon": "dynamictrees:apple_oak_seed", 4 | "category": "dynamictrees:trees", 5 | "sortnum": 3, 6 | "pages": [ 7 | { 8 | "type": "text", 9 | "title": "リンゴの木", 10 | "text": "リンゴの木は果樹であり、オークの派生種です。デフォルトでは平原のバイオームに生成されます。この木は成熟すると、葉から収穫可能なリンゴを育てます。" 11 | }, 12 | { 13 | "type": "image", 14 | "images": [ 15 | "dynamictrees:textures/patchouli/images/apple_oak_1.png" 16 | ], 17 | "text": "成熟したリンゴの木", 18 | "border": true 19 | }, 20 | { 21 | "type": "text", 22 | "text": "果実の成長は、Serene Seasonsのような季節modがインストールされている場合、季節によって影響されます。そうでない場合は一年中成長します。$(br2)収穫後に、余ったリンゴを$(l:mechanics/dirt_bucket)土入りバケツ$()を使って追加の種子に変換し、再植樹することができます。" 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/shaders/block.properties: -------------------------------------------------------------------------------- 1 | # Leaves 2 | block.10018 = dynamictrees:jungle_leaves dynamictrees:oak_leaves dynamictrees:spruce_leaves dynamictrees:dark_oak_leaves dynamictrees:acacia_leaves dynamictrees:birch_leaves 3 | -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/big/end1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/big/end1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/big/end2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/big/end2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/big/end3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/big/end3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/big/start1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/big/start1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/big/start2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/big/start2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/big/start3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/big/start3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/end1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/end1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/end2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/end2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/end3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/end3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/small_end1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/small_end1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start4.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/fungus/start4.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/end1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/end1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/end2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/end2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/end3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/end3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/start1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/start1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/start2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/start2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/start3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/medium/start3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_bare1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_bare1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_bare2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_bare2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_water1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_water1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_water2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/small/end_water2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/water/fall1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/water/fall1.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/water/fall2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/water/fall2.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/sounds/falling_tree/water/fall3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/sounds/falling_tree/water/fall3.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/air.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/air.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/apple.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/apple_golden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/apple_golden.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/crimson_cap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/crimson_cap.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/roots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/roots.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/roots_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/roots_bottom.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/sapling_water_roots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/sapling_water_roots.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/test.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/warped_cap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/warped_cap.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/block/water_roots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/block/water_roots.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/acacia_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/acacia_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/apple_oak_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/apple_oak_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/azalea_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/azalea_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/birch_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/birch_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/cherry_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/cherry_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/cocoa_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/cocoa_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/crimson_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/crimson_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/dark_oak_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/dark_oak_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/dirt_bucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/dirt_bucket.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/jungle_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/jungle_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/mangrove_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/mangrove_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/manual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/manual.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/oak_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/oak_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/spruce_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/spruce_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/staff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/staff.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/staff_glimmer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/staff_glimmer.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/staff_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/staff_handle.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/staff_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/staff_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/item/warped_seed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/item/warped_seed.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/gui/brewing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/gui/brewing.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/gui/page_filler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/gui/page_filler.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/acacia_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/acacia_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/apple_oak_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/apple_oak_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/bees_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/bees_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/burgeoning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/burgeoning.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/dark_oak_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/dark_oak_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/falling_tree_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/falling_tree_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/mega_spruce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/mega_spruce.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/nether_fungi_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/nether_fungi_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/nether_fungi_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/nether_fungi_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/oak_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/oak_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/rooty_soil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/rooty_soil.png -------------------------------------------------------------------------------- /src/main/resources/assets/dynamictrees/textures/patchouli/images/spruce_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/dynamictrees/textures/patchouli/images/spruce_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/acacia_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/acacia_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/birch_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/birch_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/crimson_stem_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/crimson_stem_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/dark_oak_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/dark_oak_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/jungle_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/jungle_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/oak_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/oak_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/spruce_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/spruce_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_acacia_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_acacia_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_birch_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_birch_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_crimson_stem_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_crimson_stem_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_dark_oak_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_dark_oak_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_jungle_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_jungle_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_oak_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_oak_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_spruce_log_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_spruce_log_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/stripped_warped_stem_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/stripped_warped_stem_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/assets/minecraft/textures/block/warped_stem_top_thick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/assets/minecraft/textures/block/warped_stem_top_thick.png -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/damage_type/falling_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "exhaustion": 0.1, 3 | "message_id": "falling_tree", 4 | "scaling": "when_caused_by_living_non_player" 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/forge/biome_modifier/add_dynamic_trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "dynamictrees:add_dynamic_trees" 3 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/forge/biome_modifier/run_feature_cancellers.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "dynamictrees:run_feature_cancellers" 3 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/patchouli_books/guide/book.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dynamic Trees Manual", 3 | "creative_tab": "dynamictrees:dynamictrees", 4 | "landing_text": "Dynamic Trees Completely overhauls vanilla trees by replacing them with trees that grow over time and are aware of their surroundings during growth. Dynamic Trees also look more realistic with branches and trunks.", 5 | "version": 3, 6 | "model": "dynamictrees:manual", 7 | "filler_texture": "dynamictrees:textures/patchouli/gui/page_filler.png", 8 | "show_progress": "false", 9 | "use_resource_pack": true 10 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/recipes/cocoa_beans.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "ingredients": [ 4 | { 5 | "item": "dynamictrees:cocoa_seed" 6 | } 7 | ], 8 | "result": { 9 | "item": "cocoa_beans", 10 | "count": 3 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/recipes/dirt_bucket.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "pattern": [ 4 | "S", 5 | "P" 6 | ], 7 | "key": { 8 | "P": { 9 | "item": "minecraft:bucket" 10 | }, 11 | "S": { 12 | "item": "minecraft:dirt" 13 | } 14 | }, 15 | "result": { 16 | "item": "dynamictrees:dirt_bucket" 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/recipes/guide.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "forge:conditional", 3 | "recipes": [ 4 | { 5 | "conditions": [ 6 | { 7 | "type": "forge:mod_loaded", 8 | "modid": "patchouli" 9 | } 10 | ], 11 | "recipe": { 12 | "type": "patchouli:shapeless_book_recipe", 13 | "ingredients": [ 14 | { 15 | "item": "minecraft:book" 16 | }, 17 | { 18 | "tag": "dynamictrees:seeds" 19 | } 20 | ], 21 | "book": "dynamictrees:guide" 22 | } 23 | }, 24 | { 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/structures/village/plains/town_centers/plains_meeting_point_3.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/data/dynamictrees/structures/village/plains/town_centers/plains_meeting_point_3.nbt -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/entity_types/can_pass_through_leaves.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:bee" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/entity_types/falling_tree_collision_blacklist.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | { 4 | "id": "snowrealmagic:snow", 5 | "required": false 6 | } 7 | ] 8 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/entity_types/falling_tree_damage_immune.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:bee", 4 | "minecraft:turtle", 5 | "minecraft:allay" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/items/enhanced_fertilizer.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | { 5 | "id": "create:tree_fertilizer", 6 | "required": false 7 | } 8 | ] 9 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/items/fertilizer.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "bone_meal" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/worldgen/biome/is_bee_nest_common.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:plains", 4 | "minecraft:sunflower_plains", 5 | "minecraft:cherry_grove" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/worldgen/biome/is_bee_nest_guaranteed.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:meadow" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/worldgen/biome/is_bee_nest_rare.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:is_forest" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/dynamictrees/tags/worldgen/biome/is_bee_nest_uncommon.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:flower_forest", 4 | "minecraft:mangrove_swamp" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/damage_type/falling_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "exhaustion": 0.1, 3 | "message_id": "falling_tree", 4 | "scaling": "when_caused_by_living_non_player" 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/blocks/snow_layer_can_survive_on.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "#dynamictrees:leaves" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/damage_type/falling_tree.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "dynamictrees:falling_tree" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DynamicTreesTeam/DynamicTrees/b8da211da388c95544d673e1edeac02f3d7b15fb/src/main/resources/logo.png -------------------------------------------------------------------------------- /src/main/resources/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "description": "dynamictrees resources", 4 | "pack_format": 6, 5 | "_comment": "A pack_format of 6 requires json lang files. Note: we require v4 pack meta for all mods." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/acacia.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "acacia", 3 | "common_species": "acacia", 4 | "primitive_log": "acacia_log", 5 | "primitive_stripped_log": "stripped_acacia_log", 6 | "max_branch_radius": 8 7 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "birch", 3 | "common_species": "birch", 4 | "primitive_log": "birch_log", 5 | "primitive_stripped_log": "stripped_birch_log", 6 | "max_branch_radius": 8, 7 | "conifer_variants": true 8 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/cherry.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "cherry", 3 | "common_species": "cherry", 4 | "primitive_log": "cherry_log", 5 | "primitive_stripped_log": "stripped_cherry_log", 6 | "max_branch_radius": 8 7 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/crimson.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "nether_fungus", 3 | "common_leaves": "crimson", 4 | "common_species": "crimson", 5 | "primitive_log": "crimson_stem", 6 | "primitive_stripped_log": "stripped_crimson_stem", 7 | "max_branch_radius": 24 8 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/dark_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "dark_oak", 3 | "common_species": "dark_oak", 4 | "primitive_log": "dark_oak_log", 5 | "primitive_stripped_log": "stripped_dark_oak_log", 6 | "max_branch_radius": 24, 7 | "generate_surface_root": true, 8 | "conifer_variants": true 9 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/jungle.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "jungle", 3 | "common_species": "jungle", 4 | "primitive_log": "jungle_log", 5 | "primitive_stripped_log": "stripped_jungle_log", 6 | "max_branch_radius": 24, 7 | "generate_surface_root": true, 8 | "max_signal_depth": 64 9 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/mangrove.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "mangrove", 3 | "common_leaves": "mangrove", 4 | "common_species": "mangrove", 5 | "primitive_log": "mangrove_log", 6 | "primitive_stripped_log": "stripped_mangrove_log", 7 | "max_branch_radius": 8, 8 | "default_soil": "dynamictrees:mangrove_aerial_roots", 9 | "primitive_root": "mangrove_roots", 10 | "primitive_filled_root": "muddy_mangrove_roots", 11 | "primitive_covered_root": "mud", 12 | "root_system_acceptable_soils": ["dirt_like", "mud_like", "sand_like"] 13 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "oak", 3 | "common_species": "oak", 4 | "primitive_log": "oak_log", 5 | "primitive_stripped_log": "stripped_oak_log", 6 | "max_branch_radius": 8 7 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/spruce.json: -------------------------------------------------------------------------------- 1 | { 2 | "common_leaves": "spruce", 3 | "common_species": "spruce", 4 | "primitive_log": "spruce_log", 5 | "primitive_stripped_log": "stripped_spruce_log", 6 | "max_branch_radius": 24 7 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/families/warped.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "nether_fungus", 3 | "common_leaves": "warped", 4 | "common_species": "warped", 5 | "primitive_log": "warped_stem", 6 | "primitive_stripped_log": "stripped_warped_stem", 7 | "max_branch_radius": 24 8 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/fruits/apple.json: -------------------------------------------------------------------------------- 1 | { 2 | "item_stack": "apple", 3 | "block_shapes": [ 4 | { "function": "fruit", "parameters": { "radius": 1, "height": 1, "stem_length": 0, "fraction": 16 } }, 5 | { "function": "fruit", "parameters": { "radius": 1, "height": 2, "stem_length": 0, "fraction": 16 } }, 6 | { "function": "fruit", "parameters": { "radius": 2.5, "height": 5, "stem_length": 0 } }, 7 | { "function": "fruit", "parameters": { "radius": 2.5, "height": 5, "stem_length": 1.25 } } 8 | ] 9 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/jo_codes/jungle_undergrowth.txt: -------------------------------------------------------------------------------- 1 | 8:P 2 | 7:P 3 | 6:P 4 | 5:P 5 | 4:P 6 | 3:P 7 | 2:P -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/jo_codes/oak_undergrowth.txt: -------------------------------------------------------------------------------- 1 | 8:P 2 | 7:P 3 | 6:P 4 | 5:P 5 | 4:P 6 | 3:P 7 | 2:P -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/acacia.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:acacia_leaves", 3 | "cell_kit": "dynamictrees:acacia", 4 | "smother": 2 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/azalea.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scruffy", 3 | "primitive_leaves": "minecraft:azalea_leaves", 4 | "cell_kit": "dynamictrees:azalea", 5 | "sound": "azalea_leaves" 6 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/bare.json: -------------------------------------------------------------------------------- 1 | { 2 | "generate_block": false, 3 | "cell_kit": "dynamictrees:bare" 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:birch_leaves" 3 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/cherry.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:cherry_leaves", 3 | "smother": 5, 4 | "light_requirement": 14, 5 | "has_tick_particles": true 6 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/crimson.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "dynamictrees:wart", 3 | "primitive_leaves": "minecraft:nether_wart_block", 4 | "cell_kit": "dynamictrees:nether_fungus", 5 | "smother": 7, 6 | "light_requirement": 0, 7 | "fire_spread": 0, 8 | "flammability": 0, 9 | "material_color": "COLOR_RED" 10 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/dark_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:dark_oak_leaves", 3 | "cell_kit": "dynamictrees:dark_oak", 4 | "smother": 3 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/flowering_azalea.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scruffy", 3 | "primitive_leaves": "minecraft:flowering_azalea_leaves", 4 | "cell_kit": "dynamictrees:azalea", 5 | "sound": "azalea_leaves" 6 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/jungle.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:jungle_leaves", 3 | "light_requirement": 12 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/jungle_undergrowth.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scruffy", 3 | "primitive_leaves": "minecraft:jungle_leaves", 4 | "cell_kit": "dynamictrees:acacia", 5 | "light_requirement": 4, 6 | "can_grow_on_ground": true 7 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/mangrove.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scruffy", 3 | "primitive_leaves": "mangrove_leaves", 4 | "smother": 6 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:oak_leaves" 3 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/oak_undergrowth.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scruffy", 3 | "primitive_leaves": "minecraft:oak_leaves", 4 | "cell_kit": "dynamictrees:acacia", 5 | "light_requirement": 4, 6 | "can_grow_on_ground": true 7 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/spruce.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_leaves": "minecraft:spruce_leaves", 3 | "smother": 3, 4 | "cell_kit": "dynamictrees:conifer" 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/leaves_properties/warped.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "dynamictrees:wart", 3 | "primitive_leaves": "minecraft:warped_wart_block", 4 | "cell_kit": "dynamictrees:nether_fungus", 5 | "smother": 7, 6 | "light_requirement": 0, 7 | "fire_spread": 0, 8 | "flammability": 0, 9 | "material_color": "WARPED_WART" 10 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/brown_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "brown_terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/clay.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "clay", 3 | "acceptable_soils": [ "clay_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/coarse_dirt.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "coarse_dirt", 3 | "acceptable_soils": [ "dirt_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/crimson_nylium.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "crimson_nylium", 3 | "acceptable_soils": [ "fungus_like", "nether_like", "nether_soil_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/dirt.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "spreadable", 3 | "primitive_soil": "dirt", 4 | "acceptable_soils": [ "dirt_like" ], 5 | 6 | "required_light": 9, 7 | "spreadable_soils": [ "grass_block", "mycelium" ] 8 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/end_stone.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "end_stone", 3 | "acceptable_soils": [ "end_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/farmland.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "farmland", 3 | "acceptable_soils": [ "dirt_like" ], 4 | "substitute_soil" : "dirt" 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/grass_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "grass_block", 3 | "acceptable_soils": [ "dirt_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/gravel.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "gravel", 3 | "acceptable_soils": [ "gravel_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/light_gray_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "light_gray_terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/mangrove_aerial_roots.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "aerial_roots", 3 | "primitive_soil": "mangrove_log", 4 | "acceptable_soils": [ ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/moss.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "moss_block", 3 | "acceptable_soils": [ "dirt_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/moss_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "moss_block", 3 | "acceptable_soils": [ "dirt_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/mud.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "mud", 3 | "acceptable_soils": [ "mud_like", "dirt_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/mycelium.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "mycelium", 3 | "acceptable_soils": [ "dirt_like", "fungus_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/netherrack.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "spreadable", 3 | "primitive_soil": "netherrack", 4 | "acceptable_soils": [ "nether_like" ], 5 | 6 | "spread_item": "bone_meal", 7 | "spreadable_soils": [ "crimson_nylium", "warped_nylium" ] 8 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/orange_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "orange_terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/podzol.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "podzol", 3 | "acceptable_soils": [ "dirt_like", "fungus_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/powder_snow.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "powder_snow", 3 | "acceptable_soils": [ "snow_like" ], 4 | "substitute_soil": "dirt" 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/red_sand.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "red_sand", 3 | "acceptable_soils": [ "sand_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/red_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "red_terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/rooted_dirt.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "rooted_dirt", 3 | "acceptable_soils": [ "dirt_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/sand.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "sand", 3 | "acceptable_soils": [ "sand_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/snow_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "snow_block", 3 | "acceptable_soils": [ "snow_like" ], 4 | "substitute_soil": "dirt" 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/soul_sand.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "soul_sand", 3 | "acceptable_soils": [ "nether_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/soul_soil.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "soul_soil", 3 | "acceptable_soils": [ "nether_like", "nether_soil_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/warped_nylium.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "warped_nylium", 3 | "acceptable_soils": [ "fungus_like", "nether_like", "nether_soil_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/water.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "water", 3 | "primitive_soil": "water", 4 | "acceptable_soils": [ "water_like" ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/white_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "white_terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/soil_properties/yellow_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "primitive_soil": "yellow_terracotta", 3 | "acceptable_soils": [ "terracotta_like" ] 4 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/species/acacia.json: -------------------------------------------------------------------------------- 1 | { 2 | "family": "acacia", 3 | "tapering": 0.15, 4 | "signal_energy": 12.0, 5 | "up_probability": 0, 6 | "lowest_branch_height": 3, 7 | "growth_rate": 0.7, 8 | "leaves_properties": "acacia", 9 | "environment_factors" : { 10 | "#forge:is_cold": 0.25, 11 | "#is_nether": 0.75, 12 | "#forge:is_wet": 0.75 13 | }, 14 | "perfect_biomes": { "tag": "#minecraft:is_savanna" }, 15 | "primitive_sapling": "acacia_sapling" 16 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/species/cherry.json: -------------------------------------------------------------------------------- 1 | { 2 | "family": "cherry", 3 | "tapering": 0.3, 4 | "signal_energy": 12.0, 5 | "up_probability": 1, 6 | "lowest_branch_height": 4, 7 | "growth_rate": 0.8, 8 | "leaves_properties": "cherry", 9 | "environment_factors" : { 10 | "#forge:is_cold": 0.75, 11 | "#forge:is_hot": 0.5, 12 | "#forge:is_dry": 0.5, 13 | "#is_forest": 1.05 14 | }, 15 | "perfect_biomes": { "types": [ "cherry_grove", "overworld" ] }, 16 | "primitive_sapling": "cherry_sapling", 17 | "features" : [ 18 | "bee_nest" 19 | ], 20 | "lang_overrides": { 21 | "seed": "Cherry Blossom Pit" 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/species/jungle_undergrowth.json: -------------------------------------------------------------------------------- 1 | { 2 | "family": "jungle", 3 | "up_probability": 0, 4 | "lowest_branch_height": 0, 5 | "signal_energy": 1.2, 6 | "soil_longevity": 1, 7 | "leaves_properties": "jungle_undergrowth", 8 | "perfect_biomes": { "name": "minecraft:jungle" }, 9 | "acceptable_soils": ["dirt_like"] 10 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/species/oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "family": "oak", 3 | "tapering": 0.3, 4 | "signal_energy": 12.0, 5 | "growth_rate": 0.8, 6 | "leaves_properties": "oak", 7 | "environment_factors" : { 8 | "#forge:is_cold": 0.75, 9 | "#forge:is_hot": 0.5, 10 | "#forge:is_dry": 0.5, 11 | "#is_forest": 1.05 12 | }, 13 | "perfect_biomes": { "types": [ "forest", "overworld" ] }, 14 | "primitive_sapling": "oak_sapling", 15 | "features" : [ 16 | { 17 | "name": "rot_soil", 18 | "properties": { 19 | "rotten_soil": "podzol" 20 | } 21 | }, 22 | "mushroom_rot", 23 | "bee_nest" 24 | ], 25 | "lang_overrides": { 26 | "seed": "Oak Acorn" 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/resources/trees/dynamictrees/species/oak_undergrowth.json: -------------------------------------------------------------------------------- 1 | { 2 | "family": "oak", 3 | "up_probability": 0, 4 | "lowest_branch_height": 0, 5 | "signal_energy": 1.2, 6 | "soil_longevity": 1, 7 | "leaves_properties": "oak_undergrowth", 8 | "perfect_biomes": { "name": "minecraft:jungle" }, 9 | "acceptable_soils": ["dirt_like"] 10 | } --------------------------------------------------------------------------------