当前位置: 首页>>代码示例>>Java>>正文


Java ParticleDigging类代码示例

本文整理汇总了Java中net.minecraft.client.particle.ParticleDigging的典型用法代码示例。如果您正苦于以下问题:Java ParticleDigging类的具体用法?Java ParticleDigging怎么用?Java ParticleDigging使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ParticleDigging类属于net.minecraft.client.particle包,在下文中一共展示了ParticleDigging类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: addBlockHitEffects

import net.minecraft.client.particle.ParticleDigging; //导入依赖的package包/类
@SideOnly(Side.CLIENT)
private void addBlockHitEffects(@Nonnull World world, @Nonnull ParticleManager effectRenderer, double xCoord, double yCoord, double zCoord,
    @Nonnull EnumFacing sideEnum, @Nonnull TextureAtlasSprite tex) {

  double d0 = xCoord;
  double d1 = yCoord;
  double d2 = zCoord;
  if (sideEnum.getAxis() != Axis.X) {
    d0 += rand.nextDouble() * 0.4 - rand.nextDouble() * 0.4;
  }
  if (sideEnum.getAxis() != Axis.Y) {
    d1 += rand.nextDouble() * 0.4 - rand.nextDouble() * 0.4;
  }
  if (sideEnum.getAxis() != Axis.Z) {
    d2 += rand.nextDouble() * 0.4 - rand.nextDouble() * 0.4;
  }

  ParticleDigging digFX = (ParticleDigging) Minecraft.getMinecraft().effectRenderer.spawnEffectParticle(EnumParticleTypes.BLOCK_CRACK.getParticleID(), d0, d1,
      d2, 0, 0, 0, 0);
  if (digFX != null) {
    digFX.init().multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F);
    digFX.setParticleTexture(tex);
  }
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:25,代码来源:BlockConduitBundle.java

示例2: addDestroyEffects

import net.minecraft.client.particle.ParticleDigging; //导入依赖的package包/类
@SuppressWarnings("deprecation")
@SideOnly(Side.CLIENT)
@Override
public boolean addDestroyEffects(World world, BlockPos pos, ParticleManager effectRenderer) {
	IBlockState state = world.getBlockState(pos);
	if (state == null || state.getBlock() != this) {
		return false;
	}
	state = state.getBlock().getActualState(state, world, pos);
	int i = 4;
	TextureAtlasSprite tex = null;
	TileEntity tile = world.getTileEntity(pos);
	if(Util.notNullAndInstanceOf(tile, TileEntityPipe.class)){
		TileEntityPipe pipe = ((TileEntityPipe)tile);
		tex = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(pipe.getPipeType().getCoreTexture(pipe));

		if(tex == null){
			return false;
		}
	}
	for (int j = 0; j < i; ++j) {
		for (int k = 0; k < i; ++k) {
			for (int l = 0; l < i; ++l) {
				double d0 = pos.getX() + (j + 0.5D) / i;
				double d1 = pos.getY() + (k + 0.5D) / i;
				double d2 = pos.getZ() + (l + 0.5D) / i;
				ParticleDigging fx = (ParticleDigging) new ParticleDigging.Factory().createParticle(-1, world, d0, d1, d2, d0 - pos.getX() - 0.5D,
						d1 - pos.getY() - 0.5D, d2 - pos.getZ() - 0.5D, 0);
				fx.setBlockPos(pos);
				fx.setParticleTexture(tex);
				effectRenderer.addEffect(fx);
			}
		}
	}

	return true;
}
 
开发者ID:Alec-WAM,项目名称:CrystalMod,代码行数:38,代码来源:BlockPipe.java

示例3: addDestroyEffects

import net.minecraft.client.particle.ParticleDigging; //导入依赖的package包/类
@SideOnly(Side.CLIENT)
@Override
public boolean addDestroyEffects(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull ParticleManager effectRenderer) {
  if (lastHitIcon == null) {
    lastHitIcon = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes()
        .getTexture(ModObject.block_machine_base.getBlockNN().getDefaultState());
  }

  IBlockState state = world.getBlockState(pos);
  TextureAtlasSprite tex = lastHitIcon;
  if (state.getBlock() != this || tex == null) {
    return false;
  }
  state = state.getActualState(world, pos);
  int i = 4;
  for (int j = 0; j < i; ++j) {
    for (int k = 0; k < i; ++k) {
      for (int l = 0; l < i; ++l) {
        double d0 = pos.getX() + (j + 0.5D) / i;
        double d1 = pos.getY() + (k + 0.5D) / i;
        double d2 = pos.getZ() + (l + 0.5D) / i;
        ParticleDigging fx = (ParticleDigging) new ParticleDigging.Factory().createParticle(-1, world, d0, d1, d2, d0 - pos.getX() - 0.5D,
            d1 - pos.getY() - 0.5D, d2 - pos.getZ() - 0.5D, 0);
        fx.setBlockPos(pos);
        fx.setParticleTexture(tex);
        effectRenderer.addEffect(fx);
      }
    }
  }

  return true;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:33,代码来源:BlockConduitBundle.java

示例4: addDestroyEffects

import net.minecraft.client.particle.ParticleDigging; //导入依赖的package包/类
@SideOnly(Side.CLIENT)
public static boolean addDestroyEffects(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull ParticleManager effectRenderer) {

  TextureAtlasSprite texture = null;
  IBlockState state = world.getBlockState(pos);
  if (state.getBlock() instanceof IPaintable) {
    IBlockState paintSource = ((IPaintable) state.getBlock()).getPaintSource(state, world, pos);
    if (paintSource != null) {
      texture = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture(paintSource);
    }
  }
  if (texture == null) {
    texture = lastTexture;
    if (texture == null) {
      return false;
    }
  }

  int i = 4;
  for (int j = 0; j < i; ++j) {
    for (int k = 0; k < i; ++k) {
      for (int l = 0; l < i; ++l) {
        double d0 = pos.getX() + (j + 0.5D) / i;
        double d1 = pos.getY() + (k + 0.5D) / i;
        double d2 = pos.getZ() + (l + 0.5D) / i;
        ParticleDigging fx = (ParticleDigging) new ParticleDigging.Factory().createParticle(-1, world, d0, d1, d2, d0 - pos.getX() - 0.5D,
            d1 - pos.getY() - 0.5D, d2 - pos.getZ() - 0.5D, 0);
        fx.setBlockPos(pos);
        fx.setParticleTexture(texture);
        effectRenderer.addEffect(fx);
      }
    }
  }

  return true;
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:37,代码来源:PaintHelper.java

示例5: addHitEffects

import net.minecraft.client.particle.ParticleDigging; //导入依赖的package包/类
@SuppressWarnings("deprecation")
@SideOnly(Side.CLIENT)
@Override
public boolean addHitEffects(IBlockState state, World worldObj, RayTraceResult target, ParticleManager effectRenderer)
{
	BlockPos pos = target.getBlockPos();
	EnumFacing side = target.sideHit;
	IBlockState iblockstate = worldObj.getBlockState(pos);

	TextureAtlasSprite sprite = null;

	TileEntity tile = worldObj.getTileEntity(pos);
	if(Util.notNullAndInstanceOf(tile, TileEntityPipe.class)){
		TileEntityPipe pipe = ((TileEntityPipe)tile);
		sprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(pipe.getPipeType().getCoreTexture(pipe));

		CoverData data = pipe.getCoverData(side);
		if(data !=null && data.getBlockState() !=null){
			if(data.getBlockState().getBlock().addHitEffects(data.getBlockState(), new PipeWorldWrapper(worldObj, pos, side), target, effectRenderer)){
				return true;
			}
			sprite = RenderUtil.getTexture(data.getBlockState());
		}
		if(sprite == null){
			return false;
		}
	}

	if(iblockstate == null)return false;

	Block block = iblockstate.getBlock();

	if (block.getRenderType(iblockstate) != EnumBlockRenderType.INVISIBLE)
	{
		AxisAlignedBB blockBounds = block.getBoundingBox(iblockstate, new PipeWorldWrapper(worldObj, pos, side), pos);
		int i = pos.getX();
		int j = pos.getY();
		int k = pos.getZ();
		float f = 0.1F;
		double d0 = i + this.rand.nextDouble() * (blockBounds.maxX - blockBounds.minX - f * 2.0F) + f + blockBounds.minX;
		double d1 = j + this.rand.nextDouble() * (blockBounds.maxY - blockBounds.minY - f * 2.0F) + f + blockBounds.minY;
		double d2 = k + this.rand.nextDouble() * (blockBounds.maxZ - blockBounds.minZ - f * 2.0F) + f + blockBounds.minZ;

		if (side == EnumFacing.DOWN)
		{
			d1 = j + blockBounds.minY - f;
		}

		if (side == EnumFacing.UP)
		{
			d1 = j + blockBounds.maxY + f;
		}

		if (side == EnumFacing.NORTH)
		{
			d2 = k + blockBounds.minZ - f;
		}

		if (side == EnumFacing.SOUTH)
		{
			d2 = k + blockBounds.maxZ + f;
		}

		if (side == EnumFacing.WEST)
		{
			d0 = i + blockBounds.minX - f;
		}

		if (side == EnumFacing.EAST)
		{
			d0 = i + blockBounds.maxX + f;
		}
		ParticleDigging fx = (ParticleDigging) Minecraft.getMinecraft().effectRenderer.spawnEffectParticle(EnumParticleTypes.BLOCK_CRACK.getParticleID(), d0, d1,
				d2, 0, 0, 0, 0);
		fx.init().multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F);
		fx.setParticleTexture(sprite);
		effectRenderer.addEffect(fx);
		return true;
	}
	return super.addHitEffects(state, worldObj, target, effectRenderer);
}
 
开发者ID:Alec-WAM,项目名称:CrystalMod,代码行数:82,代码来源:BlockPipe.java

示例6: addBlockHitEffects

import net.minecraft.client.particle.ParticleDigging; //导入依赖的package包/类
@SideOnly(Side.CLIENT)
public static void addBlockHitEffects(@Nonnull World world, @Nonnull IBlockState realBlock, @Nonnull IBlockState paintBlock, @Nonnull BlockPos pos,
    @Nonnull EnumFacing side, @Nonnull ParticleManager effectRenderer) {
  int i = pos.getX();
  int j = pos.getY();
  int k = pos.getZ();
  float f = 0.1F;
  AxisAlignedBB axisalignedbb = realBlock.getBoundingBox(world, pos);
  double d0 = i + rand.nextDouble() * (axisalignedbb.maxX - axisalignedbb.minX - f * 2.0F) + f + axisalignedbb.minX;
  double d1 = j + rand.nextDouble() * (axisalignedbb.maxY - axisalignedbb.minY - f * 2.0F) + f + axisalignedbb.minY;
  double d2 = k + rand.nextDouble() * (axisalignedbb.maxZ - axisalignedbb.minZ - f * 2.0F) + f + axisalignedbb.minZ;

  switch (side) {
  case DOWN:
    d1 = j + axisalignedbb.minY - f;
    break;
  case UP:
    d1 = j + axisalignedbb.maxY + f;
    break;
  case NORTH:
    d2 = k + axisalignedbb.minZ - f;
    break;
  case SOUTH:
    d2 = k + axisalignedbb.maxZ + f;
    break;
  case WEST:
    d0 = i + axisalignedbb.minX - f;
    break;
  case EAST:
    d0 = i + axisalignedbb.maxX + f;
    break;
  }

  // this state sets the gravity and texture. this pos sets the lighting, so we better use our block pos
  Particle digFX = Minecraft.getMinecraft().effectRenderer.spawnEffectParticle(EnumParticleTypes.BLOCK_CRACK.getParticleID(), i, j, k, 0, 0, 0,
      Block.getStateId(paintBlock));
  if (digFX instanceof ParticleDigging) {
    // this pos sets the tint...wrongly
    ((ParticleDigging) digFX).setBlockPos(pos).multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F);
    // manually fixing the tint
    if (paintBlock.getBlock() == Blocks.GRASS) {
      digFX.setRBGColorF(0.6f, 0.6f, 0.6f);
    } else {
      int tint = Minecraft.getMinecraft().getBlockColors().colorMultiplier(paintBlock, world, pos, 0);
      float particleRed = 0.6f * (tint >> 16 & 255) / 255.0F;
      float particleGreen = 0.6f * (tint >> 8 & 255) / 255.0F;
      float particleBlue = 0.6f * (tint & 255) / 255.0F;
      digFX.setRBGColorF(particleRed, particleGreen, particleBlue);
    }
    /// and this is the pos we actually want the particle to be
    digFX.setPosition(d0, d1, d2);
    // and that's it, spawn my monkeys, spawn!
  }
}
 
开发者ID:SleepyTrousers,项目名称:EnderIO,代码行数:55,代码来源:PaintHelper.java


注:本文中的net.minecraft.client.particle.ParticleDigging类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。