use of com.ferreusveritas.dynamictrees.blocks.LeavesProperties in project Bewitchment by Um-Mitternacht.
the class DynamicTreesCompat method preInit.
public static void preInit() {
IForgeRegistry<Block> blockRegistry = ForgeRegistries.BLOCKS;
cypressLeavesProperties = new LeavesProperties(ModObjects.cypress_leaves.getDefaultState(), new ItemStack(ModObjects.cypress_leaves), TreeRegistry.findCellKit(new ResourceLocation("dynamictrees", "conifer")));
elderLeavesProperties = new LeavesProperties(ModObjects.elder_leaves.getDefaultState(), new ItemStack(ModObjects.elder_leaves));
juniperLeavesProperties = new LeavesProperties(ModObjects.juniper_leaves.getDefaultState(), new ItemStack(ModObjects.juniper_leaves), TreeRegistry.findCellKit(new ResourceLocation("dynamictrees", "acacia")));
dragonsbloodLeavesProperties = new LeavesProperties(ModObjects.dragons_blood_leaves.getDefaultState(), new ItemStack(ModObjects.dragons_blood_leaves));
LeavesPaging.getLeavesBlockForSequence(Bewitchment.MODID, 0, cypressLeavesProperties);
LeavesPaging.getLeavesBlockForSequence(Bewitchment.MODID, 1, elderLeavesProperties);
LeavesPaging.getLeavesBlockForSequence(Bewitchment.MODID, 2, juniperLeavesProperties);
LeavesPaging.getLeavesBlockForSequence(Bewitchment.MODID, 3, dragonsbloodLeavesProperties);
cypressTree = new TreeCypress();
elderTree = new TreeElder();
juniperTree = new TreeJuniper();
dragonsbloodTree = new TreeDragonsBlood();
cypressTree.registerSpecies(Species.REGISTRY);
elderTree.registerSpecies(Species.REGISTRY);
juniperTree.registerSpecies(Species.REGISTRY);
dragonsbloodTree.registerSpecies(Species.REGISTRY);
Species.REGISTRY.getValue(new ResourceLocation("dynamictrees", "oak")).addDropCreator(new DropCreatorFruit(ModObjects.oak_apple_gall, 20));
ArrayList<Block> treeBlocks = new ArrayList<>();
cypressTree.getRegisterableBlocks(treeBlocks);
elderTree.getRegisterableBlocks(treeBlocks);
juniperTree.getRegisterableBlocks(treeBlocks);
dragonsbloodTree.getRegisterableBlocks(treeBlocks);
treeBlocks.addAll(LeavesPaging.getLeavesMapForModId(Bewitchment.MODID).values());
blockRegistry.registerAll(treeBlocks.toArray(new Block[treeBlocks.size()]));
ArrayList<Item> treeItems = new ArrayList<>();
cypressTree.getRegisterableItems(treeItems);
dragonsbloodTree.getRegisterableItems(treeItems);
elderTree.getRegisterableItems(treeItems);
juniperTree.getRegisterableItems(treeItems);
for (Item toRegister : treeItems) {
toRegister.setTranslationKey(toRegister.getRegistryName().toString().replace(":", "."));
ForgeRegistries.ITEMS.register(toRegister);
Bewitchment.proxy.registerTexture(toRegister, "normal");
}
if (ModConfig.compat.replaceSapling) {
MinecraftForge.EVENT_BUS.register(new SaplingReplacer());
}
ResourceLocation seedConvertion = new ResourceLocation(Bewitchment.MODID, "seeds");
GameRegistry.addShapelessRecipe(new ResourceLocation(Bewitchment.MODID, "cypress"), seedConvertion, cypressTree.getCommonSpecies().getSeedStack(1), Util.get(ModObjects.cypress_sapling), Util.get(ModItems.dirtBucket));
GameRegistry.addShapelessRecipe(new ResourceLocation(Bewitchment.MODID, "dragonsblood"), seedConvertion, dragonsbloodTree.getCommonSpecies().getSeedStack(1), Util.get(ModObjects.dragons_blood_sapling), Util.get(ModItems.dirtBucket));
}
use of com.ferreusveritas.dynamictrees.blocks.LeavesProperties in project DynamicTrees by DynamicTreesTeam.
the class TreeBuilder method build.
/**
* Builds a {@link TreeFamily} according to the specs provided. Called last in the builder chain. Repeated calls can
* be made but be sure to change the Name and Sequence for the tree before creating multiple trees.
*
* @return The newly built {@link TreeFamily}
*/
public TreeFamily build() {
if (name == null) {
System.err.println("Error: Attempted to build an nameless tree");
return TreeFamily.NULLFAMILY;
}
if (seqNum == -1 && dynamicLeavesProperties == null) {
System.err.println("Error: Attempted to build an unsequenced tree(or a tree without dynamic leaves properties)");
return TreeFamily.NULLFAMILY;
}
TreeFamily treeFamily = new TreeFamily(name) {
{
if (dynamicLeavesProperties == null) {
dynamicLeavesProperties = new LeavesProperties(primitiveLeavesBlockState) {
@Override
public int getLightRequirement() {
return dynamicLeavesLightRequirement;
}
public int getSmotherLeavesMax() {
return dynamicLeavesSmotherMax;
}
@Override
public ICellKit getCellKit() {
return TreeRegistry.findCellKit(dynamicLeavesCellKit);
}
};
LeavesPaging.getLeavesBlockForSequence(ModConstants.MODID, seqNum, dynamicLeavesProperties);
}
this.setPrimitiveLog(primitiveLogBlockState);
dynamicLeavesProperties.setTree(this);
if (stickItemStack != null) {
setStick(stickItemStack);
}
}
@Override
public void createSpecies() {
setCommonSpecies(speciesCreator != null ? speciesCreator.create(this) : new Species(name, this, dynamicLeavesProperties));
if (speciesCreateSeed) {
getCommonSpecies().generateSeed();
getCommonSpecies().setupStandardSeedDropping();
}
for (ISpeciesCreator creator : extraSpeciesCreators) {
Species species = creator.create(this);
extraSpecies.put(species.getRegistryName().getResourcePath(), species);
}
}
@Override
public void registerSpecies(IForgeRegistry<Species> speciesRegistry) {
super.registerSpecies(speciesRegistry);
extraSpecies.values().forEach(s -> speciesRegistry.register(s));
}
@Override
public List<Item> getRegisterableItems(List<Item> itemList) {
for (Species species : extraSpecies.values()) {
// Since we generated the species internally we need to let the seed out to be registered.
Seed seed = species.getSeed();
if (seed != Seed.NULLSEED) {
itemList.add(seed);
}
}
return super.getRegisterableItems(itemList);
}
};
return treeFamily;
}
Aggregations