Skip to content

Commit

Permalink
added roots model loader
Browse files Browse the repository at this point in the history
  • Loading branch information
supermassimo committed Aug 22, 2023
1 parent 17ec3f0 commit 313595e
Show file tree
Hide file tree
Showing 45 changed files with 708 additions and 265 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.19.2 2023-08-12T15:21:27.5359478 Block States: dynamictrees
// 1.19.2 2023-08-20T12:09:13.3503149 Block States: dynamictrees
ba3df68d28fba8cf21f652ea60b7575c7915d267 assets/dynamictrees/blockstates/acacia_branch.json
2606791521eac27fa77ebbeeea442b8073802a51 assets/dynamictrees/blockstates/acacia_leaves.json
28a0cd7b38e1a854acd4f0c477573a9460811d82 assets/dynamictrees/blockstates/acacia_sapling.json
Expand Down Expand Up @@ -79,21 +79,21 @@ ca7af799fc94823c3ca532a272fc4704b8bf7823 assets/dynamictrees/blockstates/warped_
1b964e57e28427389e93e334e2df1b827a126aa0 assets/dynamictrees/models/block/birch_branch.json
8a579138b01c72d894b79b2d17969464756d8e3c assets/dynamictrees/models/block/crimson_branch.json
a51dea793d1d99cf75772e6c88078e02aca50a88 assets/dynamictrees/models/block/dark_oak_branch.json
8c47ec116126bcd71bf7087a35fbfcad1a560c11 assets/dynamictrees/models/block/dark_oak_root.json
74d2459970312afdbe8ddc9324c47d2f55a2d90f assets/dynamictrees/models/block/dark_oak_root.json
b501cdf4d823a839cb321bc083c32cf985943cd3 assets/dynamictrees/models/block/jungle_branch.json
bc79d5a2bb8cf4546943c818292e6ae9592e2562 assets/dynamictrees/models/block/jungle_root.json
5a4e4fa9502a22975edc51f9ef601863b3457503 assets/dynamictrees/models/block/jungle_root.json
ef4b7408b4b4974a798c340818a91a4c8b1b4035 assets/dynamictrees/models/block/mangrove_branch.json
3ab361dc6ea3ca2c9bc43db3cef7c215e0ad03d1 assets/dynamictrees/models/block/mangrove_roots.json
a398ef5f258c41ef042f8583b358a526420feba2 assets/dynamictrees/models/block/mangrove_roots_filled.json
714135ac04b9f4aa93a734605f64fedd2d8d9170 assets/dynamictrees/models/block/mangrove_roots.json
4c832ea92b8398899623603db69a2babc020744f assets/dynamictrees/models/block/mangrove_roots_filled.json
5e4f53ad61cabb371357397906ee7dc5d509966a assets/dynamictrees/models/block/oak_branch.json
6553ecc912e1c9e94f830f407978a12070aa3c5e assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius1.json
a50406e9a273e88502bfc8c4e5ab7dc74d65d246 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius2.json
919fbba491e265702636b461b027e9a63a83b1d9 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius3.json
9fd80a5971d7e8022ca49a6594d2d74285689588 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius4.json
d65648547bbb20740572da96935f3934506379e2 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius5.json
e5a5baf1543cc816d381d65dc95f290d6576eecc assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius6.json
15d1da18826bfbc5536514a94fddf1e56284e246 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius7.json
fcdb9bc5efbdbb4e4fafca3defa3324afb1ecbfc assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius8.json
8ea08aa02e3251b15ceca12cbe53eb1073804837 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius1.json
a0dafd5f979f73a239d327be5c8c824321ea612a assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius2.json
86da2b98be24548bfc7ec9a6feeed2e23a4160cf assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius3.json
e35f754a4f38f042d421911d2f455f2e495eba29 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius4.json
2e1dee32bc222a441819acff4adfff8ba49ce187 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius5.json
2b0dafdc970831e6918f86c91d35482dbfa505f0 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius6.json
0a31bb83566268e327ffb80d3eb9aed3ddbf1e67 assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius7.json
823d2c91308dc98192b4e111f566b907519430ca assets/dynamictrees/models/block/rooty_mangrove_root_collar_radius8.json
01b3a87546301bb658752a3d8e895a56c122edc0 assets/dynamictrees/models/block/saplings/acacia.json
7a849487d3813ef0bcd33e55299ef4e396af2777 assets/dynamictrees/models/block/saplings/apple_oak.json
b465c30f23ed200e7d6b139fa4ba3e6ce2e66ca6 assets/dynamictrees/models/block/saplings/azalea.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.19.2 2023-08-12T15:32:15.0627398 dynamictrees DT Block Tags
// 1.19.2 2023-08-20T12:09:13.3431176 dynamictrees DT Block Tags
0852fd1f90777eeab7126995157c4b1242a44700 data/dynamictrees/tags/blocks/branches.json
c16c437c51cfaa61f8cec19b3f2c9af858cf2e3e data/dynamictrees/tags/blocks/branches_that_burn.json
c442ebbd74e7603d2ce20deea3e8948883715416 data/dynamictrees/tags/blocks/foliage.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"loader": "dynamictrees:root",
"loader": "dynamictrees:surface_root",
"textures": {
"bark": "minecraft:block/dark_oak_log"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"loader": "dynamictrees:root",
"loader": "dynamictrees:surface_root",
"textures": {
"bark": "minecraft:block/jungle_log"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"loader": "dynamictrees:branch",
"loader": "dynamictrees:roots",
"render_type": "minecraft:cutout_mipped",
"textures": {
"bark": "minecraft:block/mangrove_roots_side",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"loader": "dynamictrees:branch",
"loader": "dynamictrees:roots",
"textures": {
"bark": "minecraft:block/muddy_mangrove_roots_side",
"rings": "minecraft:block/muddy_mangrove_roots_top"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius1",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius2",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius3",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius4",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius5",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius6",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius7",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"parent": "dynamictrees:block/smartmodel/rooty/aerial_roots_radius8",
"textures": {
"end": "minecraft:block/mangrove_log_top",
"overlay": "minecraft:block/mangrove_roots_side",
"overlay_end": "minecraft:block/mangrove_roots_top",
"side": "minecraft:block/mangrove_log"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,21 @@
import com.ferreusveritas.dynamictrees.DynamicTrees;
import com.ferreusveritas.dynamictrees.block.branch.roots.BasicRootsBlock;
import com.ferreusveritas.dynamictrees.block.rooty.AerialRootsSoilProperties;
import com.ferreusveritas.dynamictrees.block.rooty.RootyBlock;
import com.ferreusveritas.dynamictrees.block.rooty.SoilProperties;
import com.ferreusveritas.dynamictrees.data.provider.DTBlockStateProvider;
import net.minecraft.core.Direction;
import com.ferreusveritas.dynamictrees.tree.family.MangroveFamily;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.RotatedPillarBlock;
import net.minecraftforge.client.model.generators.BlockModelBuilder;
import net.minecraftforge.client.model.generators.BlockStateProvider;
import net.minecraftforge.client.model.generators.VariantBlockStateBuilder;
import net.minecraftforge.registries.ForgeRegistries;

import java.util.Objects;

/**
* @author Harley O'Connor
* @author Max Hyper
*/
public final class AerialRootsSoilGenerator extends SoilStateGenerator {

public static final DependencyKey<Block> ROOTS = new DependencyKey<>("roots");
@Override
public void generate(DTBlockStateProvider provider, SoilProperties input, Dependencies dependencies) {
VariantBlockStateBuilder builder = provider.getVariantBuilder(dependencies.get(SOIL));
Expand All @@ -29,24 +26,32 @@ public void generate(DTBlockStateProvider provider, SoilProperties input, Depend
.modelForState().modelFile(soilModelBuilder(
provider, i,
provider.blockTexture(dependencies.get(SOIL)).getPath(),
dependencies.get(PRIMITIVE_SOIL))
dependencies.get(PRIMITIVE_SOIL),
dependencies.get(ROOTS))
).addModel();
}
}

@Override
public Dependencies gatherDependencies(SoilProperties input) {
AerialRootsSoilProperties aerialInput = (AerialRootsSoilProperties) input;
return new Dependencies()
.append(SOIL, input.getBlock())
.append(PRIMITIVE_SOIL, input.getPrimitiveSoilBlockOptional());
.append(PRIMITIVE_SOIL, input.getPrimitiveSoilBlockOptional())
.append(ROOTS, aerialInput.getFamily().getPrimitiveRoots());
}

private BlockModelBuilder soilModelBuilder (BlockStateProvider provider, int radius, String name, Block primitiveBlock){
private BlockModelBuilder soilModelBuilder (BlockStateProvider provider, int radius, String name, Block primitiveBlock, Block roots){
ResourceLocation side = provider.blockTexture(primitiveBlock);
ResourceLocation top = new ResourceLocation(side.getNamespace(), side.getPath()+"_top");
ResourceLocation rootsLoc = provider.blockTexture(roots);
ResourceLocation overlaySide = new ResourceLocation(rootsLoc.getNamespace(), rootsLoc.getPath()+"_side");
ResourceLocation overlayEnd = new ResourceLocation(rootsLoc.getNamespace(), rootsLoc.getPath()+"_top");
return provider.models().withExistingParent(name+"_radius"+radius, DynamicTrees.location("block/smartmodel/rooty/aerial_roots_radius"+ radius))
.texture("side", side)
.texture("end", top);
.texture("end", top)
.texture("overlay", overlaySide)
.texture("overlay_end", overlayEnd);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import net.minecraftforge.registries.ForgeRegistries;

/**
* @author Harley O'Connor
* @author Max Hyper
*/
public class RootsItemModelGenerator implements Generator<DTItemModelProvider, Family> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import java.util.Objects;

/**
* @author Harley O'Connor
* @author Max Hyper
*/
public class RootsStateGenerator implements Generator<DTBlockStateProvider, Family> {

Expand All @@ -26,12 +26,12 @@ public void generate(DTBlockStateProvider provider, Family input, Dependencies d
final BranchBlock root = dependencies.get(ROOT);
final BranchLoaderBuilder builderExposed = provider.models().getBuilder(
Objects.requireNonNull(ForgeRegistries.BLOCKS.getKey(root)).getPath()
).customLoader(root.getFamily().getBranchLoaderConstructor());
).customLoader(BranchLoaderBuilder::Roots);
input.addRootTextures(builderExposed::texture, provider.block(ForgeRegistries.BLOCKS.getKey(dependencies.get(PRIMITIVE_ROOT))));

final BranchLoaderBuilder builderFilled = provider.models().getBuilder(
Objects.requireNonNull(ForgeRegistries.BLOCKS.getKey(root)).getPath() + "_filled"
).customLoader(root.getFamily().getBranchLoaderConstructor());
).customLoader(BranchLoaderBuilder::Roots);
input.addRootTextures(builderFilled::texture, provider.block(ForgeRegistries.BLOCKS.getKey(dependencies.get(PRIMITIVE_FILLED_ROOT))));

provider.getVariantBuilder(root)
Expand Down
Loading

0 comments on commit 313595e

Please sign in to comment.