Search in sources :

Example 1 with BlockBonsaiPot

use of com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot in project Bewitchment by Um-Mitternacht.

the class ItemFoodSeed method onItemUseFlowerPot.

@Optional.Method(modid = "dynamictrees")
public EnumActionResult onItemUseFlowerPot(EntityPlayer player, World world, BlockPos pos, EnumHand hand, ItemStack seedStack, EnumFacing facing, float hitX, float hitY, float hitZ) {
    IBlockState emptyPotState = world.getBlockState(pos);
    if (emptyPotState.getBlock() instanceof BlockFlowerPot && emptyPotState == emptyPotState.getBlock().getDefaultState()) {
        Species species = getSpecies();
        if (species != null) {
            BlockBonsaiPot bonzaiPot = species.getBonzaiPot();
            world.setBlockState(pos, bonzaiPot.getDefaultState());
            if (bonzaiPot.setSpecies(world, species, pos) && bonzaiPot.setPotState(world, emptyPotState, pos)) {
                seedStack.shrink(1);
                return EnumActionResult.SUCCESS;
            }
        }
    }
    return EnumActionResult.PASS;
}
Also used : BlockFlowerPot(net.minecraft.block.BlockFlowerPot) IBlockState(net.minecraft.block.state.IBlockState) BlockBonsaiPot(com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot) Species(com.ferreusveritas.dynamictrees.trees.Species)

Example 2 with BlockBonsaiPot

use of com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot in project DynamicTrees by DynamicTreesTeam.

the class Seed method onItemUseFlowerPot.

public EnumActionResult onItemUseFlowerPot(EntityPlayer player, World world, BlockPos pos, EnumHand hand, ItemStack seedStack, EnumFacing facing, float hitX, float hitY, float hitZ) {
    // Handle Flower Pot interaction
    IBlockState emptyPotState = world.getBlockState(pos);
    if (emptyPotState.getBlock() instanceof BlockFlowerPot && (emptyPotState == emptyPotState.getBlock().getDefaultState())) {
        // Empty Flower Pot of some kind
        Species species = getSpecies(seedStack);
        BlockBonsaiPot bonzaiPot = species.getBonzaiPot();
        world.setBlockState(pos, bonzaiPot.getDefaultState());
        if (bonzaiPot.setSpecies(world, species, pos) && bonzaiPot.setPotState(world, emptyPotState, pos)) {
            seedStack.shrink(1);
            return EnumActionResult.SUCCESS;
        }
    }
    return EnumActionResult.PASS;
}
Also used : BlockFlowerPot(net.minecraft.block.BlockFlowerPot) IBlockState(net.minecraft.block.state.IBlockState) BlockBonsaiPot(com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot) Species(com.ferreusveritas.dynamictrees.trees.Species)

Example 3 with BlockBonsaiPot

use of com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot in project DynamicTrees by DynamicTreesTeam.

the class BakedModelBlockBonsaiPot method getQuads.

@Override
public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) {
    List<BakedQuad> quads = new ArrayList<BakedQuad>();
    if (side != null) {
        return quads;
    }
    Species species = Species.NULLSPECIES;
    IBlockState potState = null;
    if (state != null && state.getBlock() instanceof BlockBonsaiPot && state instanceof IExtendedBlockState) {
        species = ((IExtendedBlockState) state).getValue(SpeciesProperty.SPECIES);
        potState = ((IExtendedBlockState) state).getValue(BlockBonsaiPot.POT);
    }
    if (species == null || species == Species.NULLSPECIES || !(potState.getBlock() instanceof BlockFlowerPot)) {
        return quads;
    }
    BlockRendererDispatcher dispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
    IBakedModel potModel = dispatcher.getModelForState(potState);
    IBakedModel saplingModel = BakedModelSapling.getModelForSapling(species);
    quads.addAll(potModel.getQuads(potState, side, rand));
    quads.addAll(cachedSaplingQuads.computeIfAbsent(species, s -> QuadManipulator.getQuads(saplingModel, ModBlocks.blockDynamicSapling.getDefaultState(), new Vec3d(0, 0.25, 0), rand)));
    return quads;
}
Also used : BakedQuad(net.minecraft.client.renderer.block.model.BakedQuad) BlockBonsaiPot(com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot) IBakedModel(net.minecraft.client.renderer.block.model.IBakedModel) BlockRendererDispatcher(net.minecraft.client.renderer.BlockRendererDispatcher) IExtendedBlockState(net.minecraftforge.common.property.IExtendedBlockState) SpeciesProperty(com.ferreusveritas.dynamictrees.blocks.SpeciesProperty) EnumFacing(net.minecraft.util.EnumFacing) HashMap(java.util.HashMap) Species(com.ferreusveritas.dynamictrees.trees.Species) BakedQuad(net.minecraft.client.renderer.block.model.BakedQuad) ItemOverrideList(net.minecraft.client.renderer.block.model.ItemOverrideList) QuadManipulator(com.ferreusveritas.dynamictrees.client.QuadManipulator) ArrayList(java.util.ArrayList) BlockFlowerPot(net.minecraft.block.BlockFlowerPot) IBlockState(net.minecraft.block.state.IBlockState) List(java.util.List) Vec3d(net.minecraft.util.math.Vec3d) ModBlocks(com.ferreusveritas.dynamictrees.ModBlocks) Minecraft(net.minecraft.client.Minecraft) Side(net.minecraftforge.fml.relauncher.Side) Map(java.util.Map) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) TextureAtlasSprite(net.minecraft.client.renderer.texture.TextureAtlasSprite) BlockFlowerPot(net.minecraft.block.BlockFlowerPot) IBlockState(net.minecraft.block.state.IBlockState) BlockBonsaiPot(com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot) IExtendedBlockState(net.minecraftforge.common.property.IExtendedBlockState) ArrayList(java.util.ArrayList) IBakedModel(net.minecraft.client.renderer.block.model.IBakedModel) Species(com.ferreusveritas.dynamictrees.trees.Species) Vec3d(net.minecraft.util.math.Vec3d) BlockRendererDispatcher(net.minecraft.client.renderer.BlockRendererDispatcher)

Aggregations

BlockBonsaiPot (com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot)3 Species (com.ferreusveritas.dynamictrees.trees.Species)3 BlockFlowerPot (net.minecraft.block.BlockFlowerPot)3 IBlockState (net.minecraft.block.state.IBlockState)3 ModBlocks (com.ferreusveritas.dynamictrees.ModBlocks)1 SpeciesProperty (com.ferreusveritas.dynamictrees.blocks.SpeciesProperty)1 QuadManipulator (com.ferreusveritas.dynamictrees.client.QuadManipulator)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Minecraft (net.minecraft.client.Minecraft)1 BlockRendererDispatcher (net.minecraft.client.renderer.BlockRendererDispatcher)1 BakedQuad (net.minecraft.client.renderer.block.model.BakedQuad)1 IBakedModel (net.minecraft.client.renderer.block.model.IBakedModel)1 ItemOverrideList (net.minecraft.client.renderer.block.model.ItemOverrideList)1 TextureAtlasSprite (net.minecraft.client.renderer.texture.TextureAtlasSprite)1 EnumFacing (net.minecraft.util.EnumFacing)1 Vec3d (net.minecraft.util.math.Vec3d)1 IExtendedBlockState (net.minecraftforge.common.property.IExtendedBlockState)1