diff --git a/build.gradle b/build.gradle index fe261603..a96c7b27 100644 --- a/build.gradle +++ b/build.gradle @@ -80,6 +80,24 @@ minecraft { } } } + + data { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + property 'forge.logging.console.level', 'debug' + + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" + + args '--mod', 'dtbop', '--all', '--output', file('src/generated/resources/') + + mods { + dtbop { + source sourceSets.main + } + } + } } } diff --git a/src/main/java/therealeststu/dtbop/genfeature/DTBOPGenFeatures.java b/src/main/java/therealeststu/dtbop/genfeature/DTBOPGenFeatures.java index 161f1bf4..9e693cd2 100644 --- a/src/main/java/therealeststu/dtbop/genfeature/DTBOPGenFeatures.java +++ b/src/main/java/therealeststu/dtbop/genfeature/DTBOPGenFeatures.java @@ -1,19 +1,36 @@ package therealeststu.dtbop.genfeature; +import biomesoplenty.api.biome.BOPBiomes; +import biomesoplenty.init.ModBiomes; import com.ferreusveritas.dynamictrees.api.registry.IRegistry; import com.ferreusveritas.dynamictrees.systems.genfeatures.GenFeature; import com.ferreusveritas.dynamictrees.systems.genfeatures.VinesGenFeature; +import com.ferreusveritas.dynamictrees.systems.genfeatures.config.ConfiguredGenFeature; +import com.ferreusveritas.dynamictrees.trees.Species; +import com.ferreusveritas.dynamictrees.util.SafeChunkBounds; +import net.minecraft.block.BlockState; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IWorld; +import net.minecraft.world.biome.Biome; import therealeststu.dtbop.DynamicTreesBOP; +import java.util.List; +import java.util.Objects; + public class DTBOPGenFeatures { public static final GenFeature ALT_LEAVES = new AlternativeLeavesGenFeature(new ResourceLocation(DynamicTreesBOP.MOD_ID, "alt_leaves")); public static final GenFeature EXTRA_FLARE_BOTTOM = new ExtraBottomFlareGenFeature(new ResourceLocation(DynamicTreesBOP.MOD_ID, "extra_bottom_flare")); - public static final GenFeature VINES_2 = new VinesGenFeature(new ResourceLocation(DynamicTreesBOP.MOD_ID, "vines_2")); //a second vines gen feature so we can have multiple vine types in the same tree + public static final GenFeature VINES_DEEP_BAYOU = new VinesGenFeature(new ResourceLocation(DynamicTreesBOP.MOD_ID, "vines_deep_bayou")){ + @Override public boolean postGeneration(ConfiguredGenFeature configuredGenFeature, IWorld world, BlockPos rootPos, Species species, Biome biome, int radius, List endPoints, SafeChunkBounds safeBounds, BlockState initialDirtState, Float seasonValue, Float seasonFruitProductionFactor) { + if (!Objects.requireNonNull(world.getBiome(rootPos).getRegistryName()).toString().equals("biomesoplenty:deep_bayou")) return false; + return super.postGeneration(configuredGenFeature, world, rootPos, species, biome, radius, endPoints, safeBounds, initialDirtState, seasonValue, seasonFruitProductionFactor); + } + }; //vines that only appear in public static void register(final IRegistry registry) { - registry.registerAll(ALT_LEAVES, EXTRA_FLARE_BOTTOM, VINES_2); + registry.registerAll(ALT_LEAVES, EXTRA_FLARE_BOTTOM, VINES_DEEP_BAYOU); } } diff --git a/src/main/resources/assets/dtbop/models/item/mahogany.json b/src/main/resources/assets/dtbop/models/item/mahogany_branch.json similarity index 100% rename from src/main/resources/assets/dtbop/models/item/mahogany.json rename to src/main/resources/assets/dtbop/models/item/mahogany_branch.json diff --git a/src/main/resources/data/dynamictrees/tags/blocks/branches.json b/src/main/resources/data/dynamictrees/tags/blocks/branches.json index d7e6b819..f5e2e7b0 100644 --- a/src/main/resources/data/dynamictrees/tags/blocks/branches.json +++ b/src/main/resources/data/dynamictrees/tags/blocks/branches.json @@ -1,7 +1,7 @@ { "replace": false, "values": [ - "dtbop:burnt_branch", - "dtbop:hellbark_branch" + "dtbop:hellbark_branch", + "dtbop:burnt_branch" ] } \ No newline at end of file diff --git a/src/main/resources/data/dynamictrees/tags/blocks/branches_that_burn.json b/src/main/resources/data/dynamictrees/tags/blocks/branches_that_burn.json index fd53f651..3e6f89fd 100644 --- a/src/main/resources/data/dynamictrees/tags/blocks/branches_that_burn.json +++ b/src/main/resources/data/dynamictrees/tags/blocks/branches_that_burn.json @@ -1,15 +1,15 @@ { "replace": false, "values": [ - "dtbop:cherry_branch", + "dtbop:mahogany_branch", + "dtbop:magic_branch", "dtbop:dead_branch", + "dtbop:redwood_branch", "dtbop:fir_branch", - "dtbop:jacaranda_branch", - "dtbop:magic_branch", - "dtbop:mahogany_branch", "dtbop:palm_branch", - "dtbop:redwood_branch", - "dtbop:umbran_branch", - "dtbop:willow_branch" + "dtbop:cherry_branch", + "dtbop:willow_branch", + "dtbop:jacaranda_branch", + "dtbop:umbran_branch" ] } \ No newline at end of file diff --git a/src/main/resources/data/dynamictrees/tags/blocks/leaves.json b/src/main/resources/data/dynamictrees/tags/blocks/leaves.json index 21ac4deb..c95ed93c 100644 --- a/src/main/resources/data/dynamictrees/tags/blocks/leaves.json +++ b/src/main/resources/data/dynamictrees/tags/blocks/leaves.json @@ -1,36 +1,36 @@ { "replace": false, "values": [ - "dtbop:acacia_twiglet_leaves", - "dtbop:cypress_willow_leaves", - "dtbop:dark_oak_twiglet_leaves", + "dtbop:willow_leaves", + "dtbop:sparse_acacia_leaves", + "dtbop:sparse_oak_leaves", "dtbop:dark_poplar_leaves", - "dtbop:dying_leaves", - "dtbop:fir_leaves", + "dtbop:dark_oak_twiglet_leaves", + "dtbop:maple_twiglet_leaves", "dtbop:flowering_oak_leaves", + "dtbop:fir_leaves", + "dtbop:poplar_leaves", + "dtbop:dying_leaves", + "dtbop:white_cherry_leaves", + "dtbop:mahogany_leaves", + "dtbop:redwood_leaves", + "dtbop:jungle_twiglet_leaves", "dtbop:hellbark_leaves", - "dtbop:hellbark_bush_leaves", + "dtbop:pink_cherry_leaves", + "dtbop:umbran_leaves", + "dtbop:cypress_willow_leaves", "dtbop:jacaranda_leaves", - "dtbop:jungle_twiglet_leaves", - "dtbop:magic_poplar_leaves", "dtbop:maple_leaves", - "dtbop:maple_twiglet_leaves", - "dtbop:mahogany_leaves", - "dtbop:mega_dark_oak_leaves", - "dtbop:oak_twiglet_leaves", - "dtbop:orange_autumn_leaves", "dtbop:palm_leaves", - "dtbop:pink_cherry_leaves", - "dtbop:poplar_leaves", + "dtbop:magic_poplar_leaves", + "dtbop:orange_autumn_leaves", + "dtbop:yellow_autumn_leaves", "dtbop:rainbow_birch_leaves", - "dtbop:redwood_leaves", - "dtbop:sparse_acacia_leaves", - "dtbop:sparse_oak_leaves", + "dtbop:acacia_twiglet_leaves", "dtbop:spruce_poplar_leaves", - "dtbop:spruce_twiglet_leaves", - "dtbop:umbran_leaves", - "dtbop:white_cherry_leaves", - "dtbop:willow_leaves", - "dtbop:yellow_autumn_leaves" + "dtbop:mega_dark_oak_leaves", + "dtbop:hellbark_bush_leaves", + "dtbop:oak_twiglet_leaves", + "dtbop:spruce_twiglet_leaves" ] } \ No newline at end of file diff --git a/src/main/resources/data/dynamictrees/tags/blocks/saplings.json b/src/main/resources/data/dynamictrees/tags/blocks/saplings.json index d70956a6..6eaf3555 100644 --- a/src/main/resources/data/dynamictrees/tags/blocks/saplings.json +++ b/src/main/resources/data/dynamictrees/tags/blocks/saplings.json @@ -1,25 +1,25 @@ { "replace": false, "values": [ - "dtbop:dark_poplar_sapling", + "dtbop:yellow_autumn_sapling", + "dtbop:mahogany_sapling", + "dtbop:willow_sapling", + "dtbop:redwood_sapling", "dtbop:dying_sapling", - "dtbop:fir_sapling", - "dtbop:flowering_oak_sapling", "dtbop:hellbark_sapling", - "dtbop:jacaranda_sapling", + "dtbop:pink_cherry_sapling", + "dtbop:fir_sapling", + "dtbop:palm_sapling", "dtbop:magic_poplar_sapling", - "dtbop:maple_sapling", - "dtbop:mahogany_sapling", + "dtbop:dark_poplar_sapling", + "dtbop:jacaranda_sapling", + "dtbop:umbran_sapling", + "dtbop:rainbow_birch_sapling", "dtbop:orange_autumn_sapling", - "dtbop:palm_sapling", - "dtbop:pink_cherry_sapling", + "dtbop:maple_sapling", "dtbop:poplar_sapling", - "dtbop:rainbow_birch_sapling", - "dtbop:redwood_sapling", "dtbop:spruce_poplar_sapling", - "dtbop:umbran_sapling", - "dtbop:white_cherry_sapling", - "dtbop:willow_sapling", - "dtbop:yellow_autumn_sapling" + "dtbop:flowering_oak_sapling", + "dtbop:white_cherry_sapling" ] } \ No newline at end of file diff --git a/src/main/resources/data/dynamictrees/tags/blocks/stripped_branches.json b/src/main/resources/data/dynamictrees/tags/blocks/stripped_branches.json new file mode 100644 index 00000000..b1c7fe15 --- /dev/null +++ b/src/main/resources/data/dynamictrees/tags/blocks/stripped_branches.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "dtbop:stripped_hellbark_branch" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dynamictrees/tags/blocks/stripped_branches_that_burn.json b/src/main/resources/data/dynamictrees/tags/blocks/stripped_branches_that_burn.json new file mode 100644 index 00000000..9669f05d --- /dev/null +++ b/src/main/resources/data/dynamictrees/tags/blocks/stripped_branches_that_burn.json @@ -0,0 +1,15 @@ +{ + "replace": false, + "values": [ + "dtbop:stripped_mahogany_branch", + "dtbop:stripped_magic_branch", + "dtbop:stripped_dead_branch", + "dtbop:stripped_redwood_branch", + "dtbop:stripped_fir_branch", + "dtbop:stripped_palm_branch", + "dtbop:stripped_cherry_branch", + "dtbop:stripped_willow_branch", + "dtbop:stripped_jacaranda_branch", + "dtbop:stripped_umbran_branch" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dynamictrees/tags/items/seeds.json b/src/main/resources/data/dynamictrees/tags/items/seeds.json index eb42b78b..e4f3a642 100644 --- a/src/main/resources/data/dynamictrees/tags/items/seeds.json +++ b/src/main/resources/data/dynamictrees/tags/items/seeds.json @@ -1,25 +1,25 @@ { "replace": false, "values": [ - "dtbop:dark_poplar_seed", + "dtbop:yellow_autumn_seed", + "dtbop:mahogany_seed", + "dtbop:willow_seed", + "dtbop:redwood_seed", "dtbop:dying_seed", - "dtbop:fir_seed", - "dtbop:flowering_oak_seed", "dtbop:hellbark_seed", - "dtbop:jacaranda_seed", + "dtbop:pink_cherry_seed", + "dtbop:fir_seed", + "dtbop:palm_seed", "dtbop:magic_poplar_seed", - "dtbop:maple_seed", - "dtbop:mahogany_seed", + "dtbop:dark_poplar_seed", + "dtbop:jacaranda_seed", + "dtbop:umbran_seed", + "dtbop:rainbow_birch_seed", "dtbop:orange_autumn_seed", - "dtbop:palm_seed", - "dtbop:pink_cherry_seed", + "dtbop:maple_seed", "dtbop:poplar_seed", - "dtbop:rainbow_birch_seed", - "dtbop:redwood_seed", "dtbop:spruce_poplar_seed", - "dtbop:umbran_seed", - "dtbop:white_cherry_seed", - "dtbop:willow_seed", - "dtbop:yellow_autumn_seed" + "dtbop:flowering_oak_seed", + "dtbop:white_cherry_seed" ] } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/families/burnt.json b/src/main/resources/trees/dtbop/families/burnt.json index c2c06e3c..31baea38 100644 --- a/src/main/resources/trees/dtbop/families/burnt.json +++ b/src/main/resources/trees/dtbop/families/burnt.json @@ -3,5 +3,6 @@ "common_species": "dtbop:burnt", "primitive_log": "biomesoplenty:stripped_hellbark_log", "generate_stripped_branch": false, + "fire_proof": true, "max_branch_radius": 8 } \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/jo_codes/cypress_willow.txt b/src/main/resources/trees/dtbop/jo_codes/cypress_willow.txt index 83e410b3..87ee1846 100644 --- a/src/main/resources/trees/dtbop/jo_codes/cypress_willow.txt +++ b/src/main/resources/trees/dtbop/jo_codes/cypress_willow.txt @@ -21,7 +21,7 @@ 7:JJJJOJLxxxxxxxb6+fvkx6+cntx96ynv18y87zxxr87z8+vknuZPyxJPVPpOON79z6 7:JJJxJxzxxxnc87+WJxx8689xJx99z+Xvmbz88xJ+XneeePnvkz8n 7:JJJJJJxJxJxJxxxxx+XvzfmXny9p+bnmXk+Sx+X189zftxfy99yN9zfvkxxxXk6Xz8y89yV9xxxPvXbJ -7:JJJJJJP +7:JJJxJxJxOOOPvzfnyXvy+efvnXWXmJ8 7:JJJxJxOOOOOPXzf1y98XSx88mOfXi+bzOPn1PnyyvntzJ+Xt8WSp8xXnmZPyWK88mb+Xn 7:JJJxJOJxx+fX1y98XmePb8xXi6yxOV8x86n1xJPvmPmXj 7:JJJJOJOOJxxx+X187+X1z9x68z8nzeOL8nzz89+tzN98R6yxxXvyvnty98mJXzd8mJ+fy8 diff --git a/src/main/resources/trees/dtbop/jo_codes/redwood.txt b/src/main/resources/trees/dtbop/jo_codes/redwood.txt index 14cb862e..a770bf90 100644 --- a/src/main/resources/trees/dtbop/jo_codes/redwood.txt +++ b/src/main/resources/trees/dtbop/jo_codes/redwood.txt @@ -1,71 +1,71 @@ -2:JJxJJJJJOJJJxxOOOOOOOOOOOOJxxxzPp8+fvyvnz9+V8ffy+r8ffyp8fz96+q8zPXzvXq+fy89Z+fyvnvf -2:JJJJJJJJxJJOOJxxxxxxxOOOOOOOOJxxJ+fy896+vnz186+q86+f1Xi6+uZ68zPXzny9861Pnz+vnWvncPy+r8+f1R86nv -2:JJOJJJJJJJJOOOOOOOOOOOOOORPhfz9+Xj9Xz6+r8fWvnz+vnU9Xz18J6+q8Xfy+r8fX -2:JJxJJJJJJxJJxxxxxxxxxxxxxxxxxxxx676878+fy98Xz6p9fz+XnufXz8R+Xr+fi+Xr+fnynr7+X1fj86 +2:JJJJJxJJJJJOJJJxxOOOOOOOOOOOOJxxxzPp8+fvyvnz9+V8ffy+r8ffyp8fz96+q8zPXzvXq+fy89Z+fyvnvf +2:JJJJJJxJJOOJxxxxxxxOOOOOOOOJxxJ+fy896+vnz186+q86+f1Xi6+uZ68zPXzny9861Pnz+vnWvncPy+r8+f1R86nv +2:JJJJOJJJJJJJJOOOOOOOOOOOOOORPhfz9+Xj9Xz6+r8fWvnz+vnU9Xz18J6+q8Xfy+r8fX +2:JJJJxJJJJJJxJJxxxxxxxxxxxxxxxxxxxx676878+fy98Xz6p9fz+XnufXz8R+Xr+fi+Xr+fnynr7+X1fj86 2:JJJxJJJJJJJOOOOJxxxxxxxxxxxxxOOJx87+vnvz8+Xvz89fz+XnufXiPzny98+fynvj+fynvy+vjPd61Ph+f187 -2:JJOJJJJxJJJJxxxxxxxxxxxxOOOJxOJz6+Xny8+X187+X1fnz9R+Xnz9+V8fvzvyvnvz+V89fyvjPz9+V8fi8R +2:JJJJJOJJJJxJJJJxxxxxxxxxxxxOOOJxOJz6+Xny8+X187+X1fnz9R+Xnz9+V8fvzvyvnvz+V89fyvjPz9+V8fi8R 2:JJOJJxJJJJJJxOOOOOOOOOOOOOOOJxxOPnX189Xz+Xnvz+Xnvzvy89+V8+c98R+c+Xvi+c+Xvnznynvz+X1879 -2:JOJJxJJJJJxJOOOOOOOOOOOOOOJxxxOJx7+fny98+fy9+fy89Xy8+c9861PnzpPnvzvyvnvy8Z+fq8+c+U9979 +2:JJOJJxJJJJJxJOOOOOOOOOOOOOOJxxxOJx7+fny98+fy9+fy89Xy8+c9861PnzpPnvzvyvnvy8Z+fq8+c+U9979 2:JJJOJJJJJOJJxJxOOOOOJxxxxxxOOOOOJPvXznvnz+Xvy8+c9+V8+fvy8fz9+Xnznq+XnrPz+V8+fy+vnz+X1898R 2:JJOJJJOJJJJJxxxxxxOOOOOOOOOOOOJxx6+f18+Xnz98+Xvfy+vnd+viPV+f186nz+q8+fy89z6+fy89z6+Xnznq78 -2:JJOJJJJJxJJJxxxxxxxxxxxxxxxxz6+vnfy9+fnynr87nynr+fnr+fyvnr+fyvnr+Xnznq98X +2:JJJJJOJJJJJxJJJxxxxxxxxxxxxxxxxz6+vnfy9+fnynr87nynr+fnr+fyvnr+fyvnr+Xnznq98X 3:JJOJJJJxJJJJxxxxxxxxxxxxxxxz8+Xvz8+Xvz8nyXufvzfnWXnznuXvyWvnnbP1zfuPXmb+R8PWWPnvzePvi+Xtx+fXzzh98yR8xXfufvuePfp -3:JJOJJJOJJJJJxxxxxxxxxxxxOJz+X18+fy+vnzf1y986Xc+ufy98nznWXnufXzeP18+Xkx+fXuXuPfzr+Sx98961XhXzeOPvn1uPz68mOPfXufvkx7 +3:JJJJJJOJJJOJJJJJxxxxxxxxxxxxOJz+X18+fy+vnzf1y986Xc+ufy98nznWXnufXzeP18+Xkx+fXuXuPfzr+Sx98961XhXzeOPvn1uPz68mOPfXufvkx7 3:JJxJJJJJxJJJxxxxxxxxxxxxOJxOXvz+X18+fy+t8nt+d+Xk9y9+XmePfnzft+WWPnt8fdP1y9Pmfh+eeN896WM9+uXr8zh6Xec9+Sxvn1ufR8z8K6Xbx8 3:JJOJJJxJJJJJxxxxxxxxxxxxxxxxOXvz98+fy98nyXvz8y8+S9z9+bPnWX1Pnz+tx68mPfUnzePn1XnWWM98+ftxfXyUPmfmOPfXzeP189yXrPb6R -3:JOJOJxJJJJJJOOOJxxxxxxxxOJxxx+X187+vnzfy+vn1Xnz186n1vnzzP1vnWR+vnvzz9+S1889y9x7+ec9+XkOfXz+txXfnWRx+vn1vnzZ18+tfkx+fXkx79zx79PSJ -3:JJxJJJJOJJJJxxxxOOOOOOOOOOOOJxnz9+X187ny+vnb6y9+b+t8XS+fuXvy8fzePnq+Sx+vnkPzz8nuXuK7+X1eL98bPfyWN8+txXfkxfXeZ1Pn18nk9p +3:JJOJOJxJJJJJJOOOJxxxxxxxxOJxxx+X187+vnzfy+vn1Xnz186n1vnzzP1vnWR+vnvzz9+S1889y9x7+ec9+XkOfXz+txXfnWRx+vn1vnzZ18+tfkx+fXkx79zx79PSJ +3:JJJJJJxJJJJOJJJJxxxxOOOOOOOOOOOOJxnz9+X187ny+vnb6y9+b+t8XS+fuXvy8fzePnq+Sx+vnkPzz8nuXuK7+X1eL98bPfyWN8+txXfkxfXeZ1Pn18nk9p 3:JJJJJJOJJJJOJxxxxxxxxxxxxxxxxxy98+fXvj+fynvnXzf1vnWXvz8h+Xufp+bx88y8fyWPvvzviXyV9uPXzeN88hz6+UyPnrz9PzeP18+Sx+vn1uKx878mPz68n 3:JJJJJJJJJJJxxxOOOOOOOOOJxxxJx+Xnz8+Xvzvny+vnf1p8fzvWq8+t8+eZ86R+ufyXvmS8K7zvk+X1z9R8+fmR8x7+SxN99z9x6+bxh98yXj -3:JJJJxJJJJJJOJxxxxxxxxxyOPX1J8xPz87zPvyyx98Ptx6+d8mPz661x98R+bOvnvyyx898zfmL69zL9x6+WU98+eeOPnvntzPXzevh+SxuPfn1ufXkxK+fXuePfp -3:JOJJJxJJJJJJxOOOOOOOOJxxxxxxxxxPfvz8+Xvnz+Xt8z89+d+WXvk+fyh9uPfmfh+b9yPr6WJ8+uePz96XmePfXfy+tx+fXkL7zOvn18nzep8PyWJ18+vn1uPz68mKx978mPfbxPn -4:JJOJJOJJJJJJxxxxxxxOJxxxxxxxxON6689vd+XnufXb+SP1fmfh+fyX1uPz68nzeM+ft6yXmPn1SXjfzr68y8xXz8+eeOfnt89uOPz96+WWOK9+Xnvkz+RXnzjx89uZ+S9K7ftx+Xv +3:JJJJJJJxJJJJJJOJxxxxxxxxxyOPX1J8xPz87zPvyyx98Ptx6+d8mPz661x98R+bOvnvyyx898zfmL69zL9x6+WU98+eeOPnvntzPXzevh+SxuPfn1ufXkxK+fXuePfp +3:JJJJOJJJxJJJJJJxOOOOOOOOJxxxxxxxxxPfvz8+Xvnz+Xt8z89+d+WXvk+fyh9uPfmfh+b9yPr6WJ8+uePz96XmePfXfy+tx+fXkL7zOvn18nzep8PyWJ18+vn1uPz68mKx978mPfbxPn +4:JOJJOJJJJJJxxxxxxxOJxxxxxxxxON6689vd+XnufXb+SP1fmfh+fyX1uPz68nzeM+ft6yXmPn1SXjfzr68y8xXz8+eeOfnt89uOPz96+WWOK9+Xnvkz+RXnzjx89uZ+S9K7ftx+Xv 4:JJOJJJJJxJJJxxxxxxxxxxxxxxxxxOL6+fX1vnefnWX18+f1vk6vz8nyyx+Xvk9d+fk9z6PzePz9+Sx+X1889y9xXz98zL8xXmfXz+WWOvnU8i98cx7+SV9uL+S9fzzxOfvzp89rPmSU8xyXh7nb6WPX 4:JJJxJJxJJJJJxOOOOOOOOOOOOOOOOOJOPvfvnz+S98nz+S98y87+U9z9xPvmfmL8+b+Xvmfy8+Sxvy89zPuKPq+fmXmZ8+Sy89eZ9PzeePvhPi6yy89K+bxz9x+Xvmfn1yS9xxx7+S97vmWPXmOOXnfmfR9z97ePz8 -4:JJxJOJJJJJJJxOOJxOOOOOJxxxxOJPz+vnz+Xnvnzny9+b8R+Xtx97z+vh+SPkxx67nznq+bxnr+Sx18PX1uPz+XvkL+ftz9+Vt8cPzeOOfvk+c9+Sx1vh618+tx+fy98mOR8x778zx78x86WPX -4:JJOJJJJOJJJJxxxxxxxxxxxxxxOOOOOJPnfy97+X18nz+vnS+f1p8nWXvz+vmXnWWXnvzePz+vn1uPz6vknWSn18nzefv1ufpfnVyPvz+vmXmK+fi6WKx98+bx+f1vnuS9OZ+Xp+Syx988z8xz6x+Xvmb68nkx8 +4:JJJxJOJJJJJJJxOOJxOOOOOJxxxxOJPz+vnz+Xnvnzny9+b8R+Xtx97z+vh+SPkxx67nznq+bxnr+Sx18PX1uPz+XvkL+ftz9+Vt8cPzeOOfvk+c9+Sx1vh618+tx+fy98mOR8x778zx78x86WPX +4:JJJJJOJJJJOJJJJxxxxxxxxxxxxxxOOOOOJPnfy97+X18nz+vnS+f1p8nWXvz+vmXnWWXnvzePz+vn1uPz6vknWSn18nzefv1ufpfnVyPvz+vmXmK+fi6WKx98+bx+f1vnuS9OZ+Xp+Syx988z8xz6x+Xvmb68nkx8 4:JOJOJJJOJJJJOOOOJxxxxxxxxxxOJxK988+fS9+Xkx7+fq+XkXzzN89uPz96yx+Xnvkz8+eZ8+WWXp89+uZ+R9x98c+bxZ+t86yxh+Xvn1z9yx698z8x8+bzx896yVP18i8z89zx79x+Xvbxx78z8 4:JOJJJJJxJJJJxxxxxxxxxOOOOJxxOfyx6+p8PXzfvyX1vj7vWX18+f18+XtPzzOPvvih+Sx69+eeZ898yXmPnSy9Pz+uXuON6+fvnUR+bx+f1p8+tvkxmPffWWNx9618P1t8kPufvmZfkP 4:JOJJJOJJJJJJxOOOOOOOOJxOJxOOJz+XnWXvz9vzvnz+SX1vnz+S+tfnzzPt+VPkx69t+efvyyx+XnvkznXtz9+dfmR8h+Sxp+XnveePz98M+X1pzPyPp8mKx6+fi+eePevh+uPtPmPmXmPfWRWP18+uPuWPXp8M8z89zx7z89yx69P 4:JJJJJJxJJJJOOJxOJxxxxxxxxxxxxxOOJ89+fX186+f186n18+b6y+vn18h+efvWXnqy9+d+S89yXpvzzxz98ft+SXkxXfzep8z8+X1uPz+XvkyPh+fyWOuPz68x+fnU+vnzzLx98PyyynuK9XhXtxyPp7zPvkxM+bx9+Sx+X1886X -4:JJxJJJJJJxJJxOOOOOOJxxxOOOOJxOOJ98+fy9+fU8+fX1y98y8Pz6y+vn1z9PkPznWq8+SP1zx79x68mPz+Xnc8WPnzeM+fvy9uNPz68z+XmLPnzevnyWPWuPvh9+bzx98nyWX1OfvmPn1uNx6+eZ968mOeP186x8896WPX -5:JJJJJJJJxJJOJxxxxxxxxxxxOOON+fXnz+Xvy8z89Xzfy8nufXyWPy+vnnzzx+fvnuXuPvyWXvkx+fneuPfnyWX18+tx+fy98mfy87eM+b9vy+r8efk+bx+f1vnyWOvnWX18+txfyXufvkxXz8y89 +4:JJJJxJJJJJJxJJxOOOOOOJxxxOOOOJxOOJ98+fy9+fU8+fX1y98y8Pz6y+vn1z9PkPznWq8+SP1zx79x68mPz+Xnc8WPnzeM+fvy9uNPz68z+XmLPnzevnyWPWuPvh9+bzx98nyWX1OfvmPn1uNx6+eZ968mOeP186x8896WPX +5:JJJJJJJJJJJxJJOJxxxxxxxxxxxOOON+fXnz+Xvy8z89Xzfy8nufXyWPy+vnnzzx+fvnuXuPvyWXvkx+fneuPfnyWX18+tx+fy98mfy87eM+b9vy+r8efk+bx+f1vnyWOvnWX18+txfyXufvkxXz8y89 5:JJJJJOJJJJJOOOOOOOOOOOOOJx+fy+vny+vnb+WXnufvefnyX1fk7fufuPvyq8ePnzePz99ufy9+WWPy898zfmPy8+bz99q8WPi+czx78x+XnyWK+q8Xtzx7+XuPvS 5:JJOJJJJJJJJOOOOOOOJxOOOOOL+Xvz86+f18nWX18+fyX1vk+eZ9Pix8+Sx+Xntx9+bfkx+fnWWXvk+uZ6vjPzeL86yWXnn1zefvyWXvuL9z+XvmfmL+Xmfnkx+fn -5:JJOJJJJOJJJJxxxxxxxxxxxxxxxxfy8+fvy8+fvyXmfnz9vWvnufvzePfyWP188mPfufXz+S1889y9Pzzx89vy8mPz+XnuXtx+Xvbzx+fnuPvyWOPX1vi+uftz98zc8xz86nb7ePz8 -5:JJOJOJJJJJJJxxOJxxxxxxxxxxxxxxxM+fvyR89+Xnz96+b+vk618+bf1uPXnXzc+uXt8XSx8+vmZ8xmPnXzvWS+vn1uPz+XvmfmXh+bxxvf1fj+X18+bzx7+vn1yPuLx79zfvmR8xePnmR86WOPS+uS9PmXh9uPvbx+fn -5:JOJOJOJJJJJJOJxxxxxxxxxxxOJxxxxOOK979+fny98z8+fyX18+ufvmePfy8x86XzZ+uXvmXnXuePfvyyM9vnzzxfvnt+SyPp8mKPz87zeN7n1N8+uWPWR99xp78WPyXnz1Z8Z6+bxePz+vn1uPz98+SOWPX18+tx+S9uPfkxxnXz8yXh8mPz86WPXbxPzfk -5:JJOJJJxJJJJJxxxxxxxxxxxxxxxxOJxx+fnvj+fvy8ffy9vjPz+Xvi+b9R+SxPvj+fuXuOd69+SyN88z8L+bx+fnuXt8z8yPmL8+dOfvWvn1uPy9z9PmfmSPj+eeOZ98b9vWRyx69+vnS9zx79x9 -5:JJJxJJJJxJJJxxxxxxxxxxxxxOOOJPfnz9+f186Xz9Xj+bPWvi+txPz+XvmfmL8+d6188mXj+Sx+XnveeOM978M+ub9xzPp68RnzbvSxuPXX1zdPyWXt9pz98zc+SyXnhzPy8x88nkx+fn +5:JJJJOJJJJOJJJJxxxxxxxxxxxxxxxxfy8+fvy8+fvyXmfnz9vWvnufvzePfyWP188mPfufXz+S1889y9Pzzx89vy8mPz+XnuXtx+Xvbzx+fnuPvyWOPX1vi+uftz98zc8xz86nb7ePz8 +5:JJJJJJOJOJJJJJJJxxOJxxxxxxxxxxxxxxxM+fvyR89+Xnz96+b+vk618+bf1uPXnXzc+uXt8XSx8+vmZ8xmPnXzvWS+vn1uPz+XvmfmXh+bxxvf1fj+X18+bzx7+vn1yPuLx79zfvmR8xePnmR86WOPS+uS9PmXh9uPvbx+fn +5:JJJOJOJOJJJJJJOJxxxxxxxxxxxOJxxxxOOK979+fny98z8+fyX18+ufvmePfy8x86XzZ+uXvmXnXuePfvyyM9vnzzxfvnt+SyPp8mKPz87zeN7n1N8+uWPWR99xp78WPyXnz1Z8Z6+bxePz+vn1uPz98+SOWPX18+tx+S9uPfkxxnXz8yXh8mPz86WPXbxPzfk +5:JJJJJOJJJxJJJJJxxxxxxxxxxxxxxxxOJxx+fnvj+fvy8ffy9vjPz+Xvi+b9R+SxPvj+fuXuOd69+SyN88z8L+bx+fnuXt8z8yPmL8+dOfvWvn1uPy9z9PmfmSPj+eeOZ98b9vWRyx69+vnS9zx79x9 +5:JJJJJxJJJJxJJJxxxxxxxxxxxxxOOOJPfnz9+f186Xz9Xj+bPWvi+txPz+XvmfmL8+d6188mXj+Sx+XnveeOM978M+ub9xzPp68RnzbvSxuPXX1zdPyWXt9pz98zc+SyXnhzPy8x88nkx+fn 5:JOJOJJJJJOJJOOOOOOOOOOOOOOOOOJxxxXvXz+vny8+fvnz9+XkPuZ+Xp+b6yx68+q8mPnzfS+ufuOfXvmfy87+Sx+Xn1uRXr8z87eNPjPyuKvvj9Zz9PzzOePfnnWRyx98x+fnv1zbx99xzfuPy96WPnmSR8xxz86+fi68mPz89uJ9y9 -5:JJxJJJOJJJJJxxxxxxxxxxxxxxxOJmPfzfnz+XnufvzZ6y+vnnz+S9p8z+XmPnuZ+R9vzZPy89Xzzh98yPmMx879y9xXvyWOOPvy898ePz87pr+tx+SPt8mPz+XkPzzOePf1vn1t86yOWPy98P188nkx+fn -6:JJxJJJJJOJJJxxxxxxxxxxxOJxxxOOJJ+Xf09+f09XXz+i9+Xz+ntPyR+nt7zJ+nt+WXpvkx7+fvWh9XzeNPz8+kMPtOfuPvWRR+k9vemMnfuPz9+X097zzxx78fvnyWPyX09v0mPy+bPkx+XfufuOR7vuXvvbx+fn -6:JJxJJJOJJJJJxxxxxOOOOOOOOOOOJOOJP09+Xfz+nvXnz9+V8z8+ftPi+SxPXt7zJ9vmRXzb8xPnyWPy8+fvzeM+fv0mLPy8z89yR9OR+Z9PU+fq+SxnyyPnvmfmLx+fnyXkPzePzePz9+k99y9OXzx+fnp8nkx+fn -6:JOJOJJJOJJJJOOOOOOOJxxxxxxOOOJM97nU+Xb+nvWXvzb8h9fyvz8ny+mZ89zPuJ97eJ+b98yx8nfzd9WJ96WJPy+nvmZc8xx68z8Pyyynt8ix8+bxt+bPntxxz96+fuXp9z99uPvkzx78x8 +5:JxJJJOJJJJJxxxxxxxxxxxxxxxOJmPfzfnz+XnufvzZ6y+vnnz+S9p8z+XmPnuZ+R9vzZPy89Xzzh98yPmMx879y9xXvyWOOPvy898ePz87pr+tx+SPt8mPz+XkPzzOePf1vn1t86yOWPy98P188nkx+fn +6:JJJJJxJJJJJOJJJxxxxxxxxxxxOJxxxOOJJ+Xf09+f09XXz+i9+Xz+ntPyR+nt7zJ+nt+WXpvkx7+fvWh9XzeNPz8+kMPtOfuPvWRR+k9vemMnfuPz9+X097zzxx78fvnyWPyX09v0mPy+bPkx+XfufuOR7vuXvvbx+fn +6:JJJJxJJJOJJJJJxxxxxOOOOOOOOOOOJOOJP09+Xfz+nvXnz9+V8z8+ftPi+SxPXt7zJ9vmRXzb8xPnyWPy8+fvzeM+fv0mLPy8z89yR9OR+Z9PU+fq+SxnyyPnvmfmLx+fnyXkPzePzePz9+k99y9OXzx+fnp8nkx+fn +6:JJJJOJOJJJOJJJJOOOOOOOJxxxxxxOOOJM97nU+Xb+nvWXvzb8h9fyvz8ny+mZ89zPuJ97eJ+b98yx8nfzd9WJ96WJPy+nvmZc8xx68z8Pyyynt8ix8+bxt+bPntxxz96+fuXp9z99uPvkzx78x8 6:JJJJJJJJxJJOOOOOOOOOOOOOOOOJxPz8+Xfnzfvy8nfyR+nt7n0y89yx977ePfyRx+XvufuL9+fiXy9fzePzfvmXmOXePni6yxR8mPXp+eeefnvhz8ntxOfvz9vyyyx+Xvnty98mK+fi7 -6:JJJJJJxJJJJOOOOOOOOOOOOOOJxxxJxJ9+nt7+X0fvz9+V8z87zPvyyx698z8+bftxPz9+Xmb8nz9XyWMPU8cnuXzPuPvyWS8+bxxfnz9p8mKx+nvmfnuXdvyWXvz89uK9uPXyyyWPXhz89uR9+eeLx78ftzPt8mPy+fkPS +6:JJJJJJJJJxJJJJOOOOOOOOOOOOOOJxxxJxJ9+nt7+X0fvz9+V8z87zPvyyx698z8+bftxPz9+Xmb8nz9XyWMPU8cnuXzPuPvyWS8+bxxfnz9p8mKx+nvmfnuXdvyWXvz89uK9uPXyyyWPXhz89uR9+eeLx78ftzPt8mPy+fkPS 6:JJxJJJJJJJJOOOOOOOOOOOOOJxOJy7Pz9+X09+b8+WR89fz8h6vz+nvWRv09+bxfk+kPtPWWR89+mXmZ89+V7098XyWOWPXvi9uON+Xd9y9x9+eeJz+nvzz9Pk9uft8y8OXzx98x86WPX -6:JJJxJJxJJJJJxxOJxxxxxxxxxxxxxxxxOOPvnnvy+efvnvyvf0nvXz9+Xj9y+Z9+fmR8PWS9+bP0y89pvVy9+f0y8zL8x89uePft6yx+Xnt+eZxnfpPiPyWOOXvnyyPnvzzzxfnuPvhftxxx9+WX0979z9x+XvmSmPXmJy8+bx78yPmPnb8mPz8 -6:JJxJJJJOJJJJxxxxxxxxxxxxxxxxxxx689+d86+b+i9XXznq+XnzZ9XmR+fh+XuZ9x+XvzePfkXyWN+Xnubft7+X0fufvbx+b9+Sxvyy98+kxz869uWPXzx79x970zOfnkPrZ9z98mPz8 +6:JJJJJJxJJxJJJJJxxOJxxxxxxxxxxxxxxxxOOPvnnvy+efvnvyvf0nvXz9+Xj9y+Z9+fmR8PWS9+bP0y89pvVy9+f0y8zL8x89uePft6yx+Xnt+eZxnfpPiPyWOOXvnyyPnvzzzxfnuPvhftxxx9+WX0979z9x+XvmSmPXmJy8+bx78yPmPnb8mPz8 +6:JJJJJxJJJJOJJJJxxxxxxxxxxxxxxxxxxx689+d86+b+i9XXznq+XnzZ9XmR+fh+XuZ9x+XvzePfkXyWN+Xnubft7+X0fufvbx+b9+Sxvyy98+kxz869uWPXzx79x970zOfnkPrZ9z98mPz8 6:JOJOJJJOJJJJOOOOOOOOOJxxxxxxxxxy87+nvfy9fny+fvnWXv0y+Z8nvynz9p8z8x6+bPqPWWJ6098P0zPmPy89yXzPpvU+eeOP097fnquPvkxXzfk+WWOK+nt6yP09vky8+eeefh9K89uPy+ftx69z99zx79x98mePfmPn -6:JOJOJJJOJJJJOJxxxxxxxxxxxxxxxxJ+nvXzfmXny9+fny97+WR9Pj+bx+f099+V8z8x89uPvyyN9vzzL989+d8yx68xnc+Xtxy97+bxf09fih+Sxxy98+WWPXnvzeeOfnvn0mPyU+fkPtx+XzePvtx76XSx69uJ9y9 +6:JJJJOJOJJJOJJJJOJxxxxxxxxxxxxxxxxJ+nvXzfmXny9+fny97+WR9Pj+bx+f099+V8z8x89uPvyyN9vzzL989+d8yx68xnc+Xtxy97+bxf09fih+Sxxy98+WWPXnvzeeOfnvn0mPyU+fkPtx+XzePvtx76XSx69uJ9y9 7:JJxJJOJJJJJJxxOOOOOOOOOOOOOJ09+n1679+k6+t7f0nX1Xb806P1uP16+c6WPvi+t17+enePvSXmmPnS+t17+c076+kx+k6+t16x66WN+nS70mnf1t7xx+nven179vkx+nX 7:JJJOJJJJJOJJxxxxxxxxxxxOOOOOnXv076+n1167fWn16+k7v1606+nbPuuP167f0mP0+fXzfSx691vzfS+nzenfS069zb6p+bb60PV16+mmOPf0nS7b91OvfzevfXnbx+vf 7:JJxJxJJJJJxJOOJxxxxxxxxxxxxx076+vf06+t707+nWvX1venfmnXz616+mc6XuuPvfbx+vf00x67fWp6x+nXuuPvZ+nzeP0+vfWt6X0mOnfX11x9177PS0P1x96XekneOnfuvfntx961x96x6 7:JOJOOJJJJJOJJxxxxxxxxxxxxxOOfy89+fy89z+XvzfyXk9z96y+vnz+t8nWX1vk7ePf1zfuPy98zfy8x86yPvzePn1q86WWPXh+bzx7+p8n1yWXvuZ9x+XvmXmOfXmfnnbx+fnSx69uJ+S9v 7:JJOJJJJJJJJOOOJxxxxxxxxxxxxxxxOJ+fXvfX0+q76n07+t6+k7+t606+nd606+kx806+upXS76nmnZ+vzeJ+n17606xn1vX0ZnVP1uJ17+t77eP0+vb+mmOfR80x8+fXfWtvWOh9XWnXtx9 -7:JJOJJJJJJJJOOOOOOOOOOOOOOOOOOJxX07+vX07+r6+nfU+n1Xb60nR+up67fmh+b6+epvfWvWPn00+b696qP0U7p+txx9+fS6WP0nS+kx07PUnbx0Pr707P117b6i06x97b+mh0x+nXePfbf1uuPvzx76K6WP0mnX16WPXkx+nX -7:JJJJxJJJJJJOOOOOOOOOOOOOOJxxxxxx89679+nz6Xz6X09vV+mmPnXep7PvWvR+mhnX1p177ePvS1PR8zxnfS+vz6V80x807+fX1uOvWPXfzeNx9+nb68cx8+t1Ovfz6Pzen1L7b60mOPnfWMP1606Pbx+vf -7:JJJJOJJJJJJOJxxxxxxxxxxxxOOOOOL+nvX097+t6+nzfXt606P0nep7P1670x8+vb8R+txP16+fSxx9+nXmh07+fXz1N7x+nfWuPq69+nzup7x76qP0mLx+vf0mPXX1uuOPfvz6K+bx+n17fSx0x86x+vXvtx9 -7:JJJJJJJJJJJxxxxxxxxxeOP097+kx8+tx96WPnek9v1ut6PWh6+kx87ePr60+uK9vXjxnfzuJ+vfWtXWh6PmmOfWPnmh77+t1xx6+q76+bx+kx6+t7ePfWk0661K60PWPv -7:JJJxxJJJJJxJOOJxxxxxxxxxxxx1PR+nfvz096+i916717x8+tXSPmmPnS+enePfX00691Pz6+cZ6WK98SX1+eneP1vfX0mOPz680+fXzemPnb61PWP0nS91xOvf11PZ6R7evfXkx+nXtx9 +7:JJOJJJJJJJOOOOOOOOOOOOOOOOOOJxX07+vX07+r6+nfU+n1Xb60nR+up67fmh+b6+epvfWvWPn00+b696qP0U7p+txx9+fS6WP0nS+kx07PUnbx0Pr707P117b6i06x97b+mh0x+nXePfbf1uuPvzx76K6WP0mnX16WPXkx+nX +7:JJJxJJJJJJOOOOOOOOOOOOOOJxxxxxx89679+nz6Xz6X09vV+mmPnXep7PvWvR+mhnX1p177ePvS1PR8zxnfS+vz6V80x807+fX1uOvWPXfzeNx9+nb68cx8+t1Ovfz6Pzen1L7b60mOPnfWMP1606Pbx+vf +7:JJJJJJJOJJJJJJOJxxxxxxxxxxxxOOOOOL+nvX097+t6+nzfXt606P0nep7P1670x8+vb8R+txP16+fSxx9+nXmh07+fXz1N7x+nfWuPq69+nzup7x76qP0mLx+vf0mPXX1uuOPfvz6K+bx+n17fSx0x86x+vXvtx9 +7:JJJJJJJJJJxxxxxxxxxeOP097+kx8+tx96WPnek9v1ut6PWh6+kx87ePr60+uK9vXjxnfzuJ+vfWtXWh6PmmOfWPnmh77+t1xx6+q76+bx+kx6+t7ePfWk0661K60PWPv +7:JJJJJJxxJJJJJxJOOJxxxxxxxxxxxx1PR+nfvz096+i916717x8+tXSPmmPnS+enePfX00691Pz6+cZ6WK98SX1+eneP1vfX0mOPz680+fXzemPnb61PWP0nS91xOvf11PZ6R7evfXkx+nXtx9 8:JJJJxJJJJJJOOOOOOOOOOOOOJxxxxxxPnfy986+mXfvyvf09fyR7n0yXh9y+fp+XbPmXz89yPuN7+Sxx+Xnvzzx7nvknvyyWPX0xXnvb0Pp8fyyyy89x989zPuOOfvV9+bxzx+fvnt8mL8yPfmWPXmPn -8:JJxJJJJOJJJJxJxOOOOOOOOOOOJxOP09+fvyR+fnvfyX097nyp87z+np+kXuXpPWWOPnXnzzx+fvhnq+Xkx+fnyWP09+f09uOK+fvXyWPy+kx89+bxx097f0z89v0hxXz8XtxZ+Xufp8y89uPy9 +8:JJJJJxJJJJOJJJJxJxOOOOOOOOOOOJxOP09+fvyR+fnvfyX097nyp87z+np+kXuXpPWWOPnXnzzx+fvhnq+Xkx+fnyWP09+f09uOK+fvXyWPy+kx89+bxx097f0z89v0hxXz8XtxZ+Xufp8y89uPy9 8:JJJJJJJJJJJxOOOOOOOOOOOOOOJxxx96+nvy+fvi9fy7+i96+d8y8PvyRx6+eeOnvfvk9y9OXvyXf0y+fhyPz8nuVPfbLx+nvyWOi9XX0zfkx79zd9xuPfS+bx+efp8+ix+Sx88h9yx6vuePfuPV -8:JJOJxJJJJJxJOJxxxxxxxxxxxxxxOJx9f09Xnfynt+bPnWV8+b9+WXvjff0z8xfnuXz9xPvWR8nzZx7+nuS9z9XU+cPqp+Sxny98mOM6+fi+SyR+hz89+bxxnenv09+ky+fk9uJz9+Xz9vvSx67zx78x8 +8:JJJJOJxJJJJJxJOJxxxxxxxxxxxxxxOJx9f09Xnfynt+bPnWV8+b9+WXvjff0z8xfnuXz9xPvWR8nzZx7+nuS9z9XU+cPqp+Sxny98mOM6+fi+SyR+hz89+bxxnenv09+ky+fk9uJz9+Xz9vvSx67zx78x8 8:JJOJJJJxJJJJxOOJxOOOOOOeJPz89Jx9+XnzntPyWN88mPntp+S09PeeJ7+h9+SyPvz+kJ9uXzPpveeLfk9Py+j9uOXvfyWOmPy79x+Xz96R+bxePz8+nv0mPy+fkPty+fuK97z87zx78x8 -8:JJOJOJJJJJJJxxxxxxOOOOOOOJxxxxOJ7+nvy7nny9vyXz89fc+SPnzZ9y9Pjfyyx68+fvmZ8xx86+SyX0OPXpx69z9OPy77eOOPvzvk9+X0b9dPbzx89+SxWPy9+mS89+mbnhyx9+fmPntxp+Xd9uPy96WPX -8:JJJJJxJJJJJOJxOJxxxxxxxxxxxxxxxx798nvfXzf0h967h+X09p7zP09+S+kx697z+nvUK+b9yR9xx6+fvy8z8xL6XyWPyU+nvz+nvy+bxzx98Pv0mPy+fk9uOWPnuPvd+Sxyx+XnuPz98+bzxvf0M9p+ky+fkXty9xXz97z8 +8:JJJJJOJOJJJJJJJxxxxxxOOOOOOOJxxxxOJ7+nvy7nny9vyXz89fc+SPnzZ9y9Pjfyyx68+fvmZ8xx86+SyX0OPXpx69z9OPy77eOOPvzvk9+X0b9dPbzx89+SxWPy9+mS89+mbnhyx9+fmPntxp+Xd9uPy96WPX +8:JJJJJJJJxJJJJJOJxOJxxxxxxxxxxxxxxxx798nvfXzf0h967h+X09p7zP09+S+kx697z+nvUK+b9yR9xx6+fvy8z8xL6XyWPyU+nvz+nvy+bxzx98Pv0mPy+fk9uOWPnuPvd+Sxyx+XnuPz98+bzxvf0M9p+ky+fkXty9xXz97z8 8:JJOJJJxJJJJJxxxxxxxxxxOOOOOOOOJPz+nvXfX0Xvy7vq+S+d8+Xzzx9898XSPzeMPfuXuJvvmWPXz8xxnfk+XrN+bxk7z98XyWOWPy89PntxyPuPvdvmXzL8xXmXzPnyWWM6+np+bxzz89x98mPntyPz9x96Xtx+Xv -8:JOJOOJJJJJOJJxxxxxxxxxxOOOOOJxJ7+Xnz9+Xnvy+efvnyR+ftJ8fynf0fuXz9xfvyR7eLPn0y+fhyPh9b+WWR897+mfixnXufuL+XvUS+bxxfj+bPv0mXzx78x89yWJ+X099zN9yPp67zx78Pkx89uJ+S9v -8:JJOJxJJJJJxJOOJxxxxxxxxxxORPzOPv0Pvy+nufp78y89yPpvzzxM+fnvky8PWRxP099+bz+nv0U9uPz96yXtXkxZ+S8+U+czL8nvzeLP09f0mK+fk9yPuPz96yxOXnyWPntfky896WPXeePfmPn \ No newline at end of file +8:JJJOJOOJJJJJOJJxxxxxxxxxxOOOOOJxJ7+Xnz9+Xnvy+efvnyR+ftJ8fynf0fuXz9xfvyR7eLPn0y+fhyPh9b+WWR897+mfixnXufuL+XvUS+bxxfj+bPv0mXzx78x89yWJ+X099zN9yPp67zx78Pkx89uJ+S9v +8:JJJJOJxJJJJJxJOOJxxxxxxxxxxORPzOPv0Pvy+nufp78y89yPpvzzxM+fnvky8PWRxP099+bz+nv0U9uPz96yXtXkxZ+S8+U+czL8nvzeLP09f0mK+fk9yPuPz96yxOXnyWPntfky896WPXeePfmPn \ No newline at end of file diff --git a/src/main/resources/trees/dtbop/species/cypress_willow.json b/src/main/resources/trees/dtbop/species/cypress_willow.json index cccbc193..b8181e3d 100644 --- a/src/main/resources/trees/dtbop/species/cypress_willow.json +++ b/src/main/resources/trees/dtbop/species/cypress_willow.json @@ -25,14 +25,14 @@ "vine_type": "ceiling", "block": "biomesoplenty:spanish_moss_plant", "tip_block": "biomesoplenty:spanish_moss", - "max_length": 12, + "max_length": 4, "quantity": 32 } }, { - "name": "dtbop:vines_2", + "name": "dtbop:vines_deep_bayou", "properties": { - "block": "biomesoplenty:willow_vines", + "block": "biomesoplenty:willow_vine", "max_length": 7, "vertical_spread": 30, "ray_distance": 6, diff --git a/src/main/resources/trees/dtbop/species/willow.json b/src/main/resources/trees/dtbop/species/willow.json index 18110e6a..dae495a1 100644 --- a/src/main/resources/trees/dtbop/species/willow.json +++ b/src/main/resources/trees/dtbop/species/willow.json @@ -16,7 +16,7 @@ { "name": "vines", "properties": { - "block": "biomesoplenty:willow_vines", + "block": "biomesoplenty:willow_vine", "max_length": 7, "vertical_spread": 30, "ray_distance": 6, diff --git a/src/main/resources/trees/dtbop/world_gen/default.json b/src/main/resources/trees/dtbop/world_gen/default.json index d9c64b18..bbb9fbfc 100644 --- a/src/main/resources/trees/dtbop/world_gen/default.json +++ b/src/main/resources/trees/dtbop/world_gen/default.json @@ -1,14 +1,14 @@ [ { "__comment": "Cancel standard tree features from the BoP overworld.", - "select": { "names": [ "biomesoplenty.*", "!biomesoplenty.origin_valley" ], "type": "overworld" }, + "select": { "names": [ "biomesoplenty.*", "!biomesoplenty.origin_valley" ] }, "cancellers": { "type": "tree", "namespace": "biomesoplenty" } }, { - "__comment": "Special exception for woodland trees for now since they use a vanilla tree feature", + "__comment": "Special exception for woodland trees for now since it doesnt work with the biomesoplenty namespace", "select": { "name": "biomesoplenty:woodland", "type": "overworld" }, "cancellers": { "type": "tree", @@ -16,21 +16,13 @@ } }, { - "__comment": "Special exception for rainforest biomes", + "__comment": "Special exception for rainforest biomes for now since it doesnt work with the biomesoplenty namespace", "select": { "name": "biomesoplenty:.*rainforest.*", "type": "overworld" }, "cancellers": { "type": "tree", "namespace": "minecraft" } }, - { - "__comment": "Cancel standard tree features from the BoP nether.", - "select": { "name": "biomesoplenty.*", "type": "nether" }, - "cancellers": { - "type": "tree", - "namespace": "biomesoplenty" - } - }, { "select": { "name": "biomesoplenty:tropics" }, @@ -152,7 +144,7 @@ "apply": { "species" : { "random" : { - "dtbop:lavender" : 7, + "dtbop:jacaranda" : 7, "dtbop:flowering_oak" : 1 } }, @@ -165,12 +157,12 @@ "apply": { "species" : { "random" : { - "dtbop:lavender" : 7, + "dtbop:jacaranda" : 7, "dtbop:flowering_oak" : 1 } }, "density": 1.0, - "chance": 1.0, + "chance": 0.75, "forestness" : 1.0 } }, @@ -559,7 +551,7 @@ { "select": { "name": "biomesoplenty:deep_bayou" }, "apply": { - "chance": 0.7 + "chance": 1.0 } }, {