Dartcraft/src/main/java/ley/modding/dartcraft/block/BlockForceSapling.java
2024-04-20 16:19:19 +02:00

92 lines
2.5 KiB
Java

package ley.modding.dartcraft.block;
import java.util.List;
import java.util.Random;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ley.modding.dartcraft.Dartcraft;
import ley.modding.dartcraft.util.FXUtils;
import ley.modding.dartcraft.util.Util;
import ley.modding.dartcraft.worldgen.GenForceTree;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSapling;
import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.event.terraingen.TerrainGen;
public class BlockForceSapling extends BlockSapling {
IIcon icon;
public BlockForceSapling() {
Util.configureBlock(this, "forcesapling");
setBlockTextureName(Dartcraft.MODID + ":sapling");
setStepSound(Block.soundTypeGrass);
}
// generate tree
@Override
public void func_149878_d(World world, int x, int y, int z, Random rand) {
if (!TerrainGen.saplingGrowTree(world, rand, x, y, z))
return;
world.setBlockToAir(x, y, z);
new GenForceTree(true).generate(world, rand, x, y, z);
}
@Override
public void getSubBlocks(Item item, CreativeTabs tabs, List list) {
list.add(new ItemStack(item));
}
@Override
public void registerBlockIcons(IIconRegister register) {
this.icon = register.registerIcon(Dartcraft.MODID + ":sapling");
}
@Override
public IIcon getIcon(int p_149691_1_, int p_149691_2_) {
return this.icon;
}
@Override
@SideOnly(Side.CLIENT)
public boolean addDestroyEffects(
World world, int x, int y, int z, int meta, EffectRenderer renderer
) {
FXUtils.makeShiny(
world,
(double) x,
(double) y,
(double) z,
2,
BaseBlock.DEFAULT_COLOR,
32,
true
);
return true;
}
@Override
@SideOnly(Side.CLIENT)
public boolean
addHitEffects(World world, MovingObjectPosition target, EffectRenderer renderer) {
FXUtils.makeShiny(
world,
(double) target.blockX,
(double) target.blockY,
(double) target.blockZ,
2,
BaseBlock.DEFAULT_COLOR,
4,
true
);
return true;
}
}