Dartcraft/src/main/java/ley/modding/dartcraft/block/BlockForceSlab.java
2024-04-20 16:01:30 +02:00

109 lines
3 KiB
Java

package ley.modding.dartcraft.block;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ley.modding.dartcraft.util.DartUtils;
import ley.modding.dartcraft.util.FXUtils;
import ley.modding.dartcraft.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.material.Material;
import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.util.IIcon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockForceSlab extends BlockSlab {
int type;
public BlockForceSlab(int type) {
super(false, Material.rock);
Util.configureBlock(this, "forceslab" + type);
this.setHardness(2.0F);
this.setResistance(2000.0F);
this.setStepSound(Block.soundTypeStone);
this.setLightOpacity(0);
// TODO: WTF
//Block.useNeighborBrightness[id] = true;
this.type = type;
}
// TODO: WTF
//@Override
//public String getFullSlabName(int var1) {
// return "forceSlab";
//}
@Override
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(
IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5
) {
return !(
par5 != 1 && par5 != 0
&& !super.shouldSideBeRendered(par1IBlockAccess, par2, par3, par4, par5)
);
}
@Override
public boolean
canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) {
return false;
}
@Override
public IIcon getIcon(int alec, int meta) {
if (this.blockIcon == null)
this.blockIcon = (this.type == 16 ? DartBlocks.forceplanks
: DartBlocks.forcebrick[this.type])
.getIcon(0, 0);
return this.blockIcon;
}
@Override
public void registerBlockIcons(IIconRegister arg0) {}
@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,
DartUtils.getMcColor(this.type),
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,
DartUtils.getMcColor(this.type),
4,
true
);
return true;
}
@Override
public String func_150002_b(int arg0) {
throw new UnsupportedOperationException("ALEC");
}
}