Hello! I don't know why, but my block doesn't work in the game. It is registered in the game, but textures are unavailable and I can't place it. I can't find a mistake/////
Cusom Block class:
// CUSTOM BLOCK CLASS
public class CustomSaplingBlock extends SaplingBlock {
private final TreeSpawner tree;
public CustomSaplingBlock(Properties properties, TreeSpawner spawner) {
super(null, properties);
this.tree = spawner;
}
@Override
public void placeTree(ServerWorld world, BlockPos pos, BlockState state, Random rand) {
if (state.get(STAGE) == 0) {
world.setBlockState(pos, state.cycleValue(STAGE), 4);
}
else {
tree.spawn(world, world.getChunkProvider().getChunkGenerator(), pos, state, rand);
}
}
}
public abstract class TreeSpawner {
@Nullable
protected abstract Feature<IFeatureConfig> getFeature(Random random);
@Nullable
protected abstract IFeatureConfig getConfig(Random random);
public boolean spawn(ISeedReader reader, ChunkGenerator generator, BlockPos pos, BlockState blockunder, Random random) {
Feature<IFeatureConfig> tree = getFeature(random);
if (tree == null) return false;
IFeatureConfig config = getConfig(random);
if (config == null) return false;
reader.setBlockState(pos, Blocks.AIR.getDefaultState(), 4);
if (tree.generate(reader, generator, random, pos, config)) {
return true;
}
reader.setBlockState(pos, blockunder, 4);
return false;
}
}
BLOCK INIT:
public static final RegistryObject<Block> EXAMPLE_SAPLING = BLOCKS.register("example_sapling",
() -> new CustomSaplingBlock(AbstractBlock.Properties.create(Material.LEAVES).sound(SoundType.PLANT)
.hardnessAndResistance(0f).tickRandomly().notSolid(), null));
BLOCKSTATE (json):
{
"variants": {
"": { "model": "examplemod:block/example_sapling" }
}
}
BLOCK MODEL:
{
"parent": "block/cross",
"textures": {
"cross": "examplemod:block/example_sapling",
"particle": "examplemod:block/example_sapling"
}
}
Leaves and log are working perfectly. I think something is wrong with the model (?), but I think everything is right