本文整理汇总了Java中net.minecraft.util.math.MathHelper.ceil方法的典型用法代码示例。如果您正苦于以下问题:Java MathHelper.ceil方法的具体用法?Java MathHelper.ceil怎么用?Java MathHelper.ceil使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.util.math.MathHelper
的用法示例。
在下文中一共展示了MathHelper.ceil方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: updateFallState
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
protected void updateFallState(double y, boolean onGroundIn, IBlockState state, BlockPos pos)
{
if (!this.isInWater())
{
this.handleWaterMovement();
}
if (!this.world.isRemote && this.fallDistance > 3.0F && onGroundIn)
{
float f = (float)MathHelper.ceil(this.fallDistance - 3.0F);
if (state.getMaterial() != Material.AIR)
{
double d0 = Math.min((double)(0.2F + f / 15.0F), 2.5D);
int i = (int)(150.0D * d0);
((WorldServer)this.world).spawnParticle(EnumParticleTypes.BLOCK_DUST, this.posX, this.posY, this.posZ, i, 0.0D, 0.0D, 0.0D, 0.15000000596046448D, new int[] {Block.getStateId(state)});
}
}
super.updateFallState(y, onGroundIn, state, pos);
}
示例2: generate
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
public boolean generate(World worldIn, Random rand, BlockPos position)
{
float f = (float)(rand.nextInt(3) + 4);
for (int i = 0; f > 0.5F; --i)
{
for (int j = MathHelper.floor(-f); j <= MathHelper.ceil(f); ++j)
{
for (int k = MathHelper.floor(-f); k <= MathHelper.ceil(f); ++k)
{
if ((float)(j * j + k * k) <= (f + 1.0F) * (f + 1.0F))
{
this.setBlockAndNotifyAdequately(worldIn, position.add(j, i, k), Blocks.END_STONE.getDefaultState());
}
}
}
f = (float)((double)f - ((double)rand.nextInt(2) + 0.5D));
}
return true;
}
示例3: fall
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
public void fall(float distance, float damageMultiplier)
{
super.fall(distance, damageMultiplier);
PotionEffect potioneffect = this.getActivePotionEffect(MobEffects.JUMP_BOOST);
float f = potioneffect == null ? 0.0F : (float)(potioneffect.getAmplifier() + 1);
int i = MathHelper.ceil((distance - 3.0F - f) * damageMultiplier);
if (i > 0)
{
this.playSound(this.getFallSound(i), 1.0F, 1.0F);
this.attackEntityFrom(DamageSource.fall, (float)i);
int j = MathHelper.floor(this.posX);
int k = MathHelper.floor(this.posY - 0.20000000298023224D);
int l = MathHelper.floor(this.posZ);
IBlockState iblockstate = this.world.getBlockState(new BlockPos(j, k, l));
if (iblockstate.getMaterial() != Material.AIR)
{
SoundType soundtype = iblockstate.getBlock().getSoundType();
this.playSound(soundtype.getFallSound(), soundtype.getVolume() * 0.5F, soundtype.getPitch() * 0.75F);
}
}
}
示例4: drawMekGasContent
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
@Optional.Method(modid = "mekanism")
private void drawMekGasContent() {
if(tank.getTank() instanceof HybridGasTank) {
GasStack gasContent = ((HybridGasTank) tank.getTank()).getGas();
if(gasContent != null && gasContent.amount > 0) {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
float percFilled = ((float) gasContent.amount) / ((float) tank.getTank().getCapacity());
percFilled = MathHelper.clamp(percFilled, 0F, 1F);
int pxFilled = MathHelper.ceil(percFilled * 61F);
TextureAtlasSprite tas = gasContent.getGas().getSprite();
if(tas == null) {
tas = Minecraft.getMinecraft().getTextureMapBlocks().getMissingSprite();
}
this.mc.getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
drawTexturedModalRect(15, 10 + 61 - pxFilled, tas, 20, pxFilled);
}
}
}
示例5: getEntitiesWithinAABB
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
public <T extends Entity> List<T> getEntitiesWithinAABB(Class <? extends T > clazz, AxisAlignedBB aabb, @Nullable Predicate <? super T > filter)
{
int i = MathHelper.floor((aabb.minX - 2.0D) / 16.0D);
int j = MathHelper.ceil((aabb.maxX + 2.0D) / 16.0D);
int k = MathHelper.floor((aabb.minZ - 2.0D) / 16.0D);
int l = MathHelper.ceil((aabb.maxZ + 2.0D) / 16.0D);
List<T> list = Lists.<T>newArrayList();
for (int i1 = i; i1 < j; ++i1)
{
for (int j1 = k; j1 < l; ++j1)
{
if (this.isChunkLoaded(i1, j1, true))
{
this.getChunkFromChunkCoords(i1, j1).getEntitiesOfTypeWithinAAAB(clazz, aabb, list, filter);
}
}
}
return list;
}
示例6: fall
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
public void fall(float distance, float damageMultiplier)
{
if (distance > 1.0F)
{
this.playSound(SoundEvents.ENTITY_HORSE_LAND, 0.4F, 1.0F);
}
int i = MathHelper.ceil((distance * 0.5F - 3.0F) * damageMultiplier);
if (i > 0)
{
this.attackEntityFrom(DamageSource.fall, (float)i);
if (this.isBeingRidden())
{
for (Entity entity : this.getRecursivePassengers())
{
entity.attackEntityFrom(DamageSource.fall, (float)i);
}
}
IBlockState iblockstate = this.world.getBlockState(new BlockPos(this.posX, this.posY - 0.2D - (double)this.prevRotationYaw, this.posZ));
Block block = iblockstate.getBlock();
if (iblockstate.getMaterial() != Material.AIR && !this.isSilent())
{
SoundType soundtype = block.getSoundType();
this.world.playSound((EntityPlayer)null, this.posX, this.posY, this.posZ, soundtype.getStepSound(), this.getSoundCategory(), soundtype.getVolume() * 0.5F, soundtype.getPitch() * 0.75F);
}
}
}
示例7: isAboveLand
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
@SuppressWarnings("deprecation")
private static boolean isAboveLand(Entity entity){
if(entity == null) return false;
double y = entity.posY - 0.01;
for(int x = MathHelper.floor(entity.posX); x < MathHelper.ceil(entity.posX); x++)
for (int z = MathHelper.floor(entity.posZ); z < MathHelper.ceil(entity.posZ); z++) {
BlockPos pos = new BlockPos(x, MathHelper.floor(y), z);
if (getWorld().getBlockState(pos).getBlock().isFullBlock(getWorld().getBlockState(pos))) return true;
}
return false;
}
示例8: onCrafting
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
@Override
protected void onCrafting(ItemStack stack) {
stack.onCrafting(this.player.world, this.player, this.removeCount);
if (!this.player.world.isRemote) {
int i = this.removeCount;
CraftiniumSmelt smelt = CraftiniumSmeltRegistry.findMatchingXp(stack, this.player.world, this.forge);
float f = smelt == null ? 0 : smelt.experience(stack, this.player.world, this.forge);
if (f == 0.0F) {
i = 0;
} else if (f < 1.0F) {
int j = MathHelper.floor((float) i * f);
if (j < MathHelper.ceil((float) i * f) && Math.random() < (double) ((float) i * f - (float) j)) {
++j;
}
i = j;
}
while (i > 0) {
int k = EntityXPOrb.getXPSplit(i);
i -= k;
this.player.world.spawnEntity(new EntityXPOrb(this.player.world, this.player.posX, this.player.posY + 0.5D, this.player.posZ + 0.5D, k));
}
}
this.removeCount = 0;
net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(player, stack);
}
示例9: generateTopLeaves
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
protected void generateTopLeaves(World world, BlockPos genPos, BlockPos branchPos, int treeHeight, int leavesBase, Random rand, boolean alternate,
int maxLeavesLength, boolean irregular, boolean inverted, IBlockState leaves) {
boolean alt = false;
float percent;
int leavesLength;
if (leavesBase > branchPos.getY()) {
return;
}
generateBranchLeaves(world, branchPos, rand, true, 1, leaves);
while (branchPos.getY() > leavesBase) {
branchPos = branchPos.add(0, -1, 0);
percent = ((branchPos.getY() - leavesBase) / (float) (genPos.getY() + treeHeight - leavesBase));
if (!inverted) {
percent = 1 - percent;
}
leavesLength = MathHelper.ceil(maxLeavesLength * percent);
if (leavesLength > maxLeavesLength) {
leavesLength = maxLeavesLength;
}
if (alt || !alternate || (irregular && rand.nextInt(5) == 0)) {
generateBranchLeaves(world, branchPos, rand, false, leavesLength, irregular, leaves);
}
alt = !alt;
}
}
示例10: onCrafting
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
/**
* the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
*/
protected void onCrafting(ItemStack stack)
{
stack.onCrafting(this.player.world, this.player, this.removeCount);
if (!this.player.world.isRemote)
{
int i = this.removeCount;
float f = FurnaceRecipes.instance().getSmeltingExperience(stack);
if (f == 0.0F)
{
i = 0;
}
else if (f < 1.0F)
{
int j = MathHelper.floor((float)i * f);
if (j < MathHelper.ceil((float)i * f) && Math.random() < (double)((float)i * f - (float)j))
{
++j;
}
i = j;
}
while (i > 0)
{
int k = EntityXPOrb.getXPSplit(i);
i -= k;
this.player.world.spawnEntity(new EntityXPOrb(this.player.world, this.player.posX, this.player.posY + 0.5D, this.player.posZ + 0.5D, k));
}
}
this.removeCount = 0;
net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(player, stack);
}
示例11: isInWater
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
private static boolean isInWater(Entity entity) {
if(entity == null) return false;
double y = entity.posY + 0.01;
for(int x = MathHelper.floor(entity.posX); x < MathHelper.ceil(entity.posX); x++)
for (int z = MathHelper.floor(entity.posZ); z < MathHelper.ceil(entity.posZ); z++) {
BlockPos pos = new BlockPos(x, (int) y, z);
if (Wrapper.getWorld().getBlockState(pos).getBlock() instanceof BlockLiquid) return true;
}
return false;
}
示例12: fall
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
public void fall(float distance, float damageMultiplier)
{
int i = MathHelper.ceil((distance * 0.5F - 3.0F) * damageMultiplier);
if (i > 0)
{
if (distance >= 6.0F)
{
this.attackEntityFrom(DamageSource.fall, (float)i);
if (this.isBeingRidden())
{
for (Entity entity : this.getRecursivePassengers())
{
entity.attackEntityFrom(DamageSource.fall, (float)i);
}
}
}
IBlockState iblockstate = this.world.getBlockState(new BlockPos(this.posX, this.posY - 0.2D - (double)this.prevRotationYaw, this.posZ));
Block block = iblockstate.getBlock();
if (iblockstate.getMaterial() != Material.AIR && !this.isSilent())
{
SoundType soundtype = block.getSoundType();
this.world.playSound((EntityPlayer)null, this.posX, this.posY, this.posZ, soundtype.getStepSound(), this.getSoundCategory(), soundtype.getVolume() * 0.5F, soundtype.getPitch() * 0.75F);
}
}
}
示例13: computeRedstoneStrength
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
protected int computeRedstoneStrength(World worldIn, BlockPos pos)
{
int i = Math.min(worldIn.getEntitiesWithinAABB(Entity.class, PRESSURE_AABB.offset(pos)).size(), this.maxWeight);
if (i > 0)
{
float f = (float)Math.min(this.maxWeight, i) / (float)this.maxWeight;
return MathHelper.ceil(f * 15.0F);
}
else
{
return 0;
}
}
示例14: smeltItem
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
/**
* Turn one item from the furnace source stack into the appropriate smelted
* item in the furnace result stack
*/
@SuppressWarnings("unchecked")
public void smeltItem() {
int ammoToConsume = MathHelper.ceil(
TF2CraftingManager.AMMO_RECIPES[this.ammoSmeltType].getRecipeOutput().getCount() * 1.2f);
for (int i = 0; i < 9; i++) {
ItemStack base = this.furnaceItemStacks.get(i);
if (base != null && base.getItem() instanceof ItemAmmo && base.getItemDamage() == this.ammoSmeltType) {
ShapelessOreRecipe recipe = TF2CraftingManager.AMMO_RECIPES[base.getItemDamage()];
int ammoConsumed = Math.min(base.getCount(), ammoToConsume);
base.shrink(ammoConsumed);
ammoToConsume -= ammoConsumed;
if (base.getCount() <= 0)
this.setInventorySlotContents(i, ItemStack.EMPTY);
if (ammoToConsume <= 0) {
for (Ingredient obj : recipe.getIngredients()) {
ItemStack out=obj.getMatchingStacks()[0];
for (int j = 10; j < 19; j++) {
boolean handled = false;
ItemStack inSlot = this.getStackInSlot(j);
if (inSlot.isEmpty()) {
this.setInventorySlotContents(j, out.copy());
handled = true;
} else if (out.isItemEqual(inSlot) && ItemStack.areItemStackTagsEqual(out, inSlot)) {
int size = out.getCount() + inSlot.getCount();
if (size <= out.getMaxStackSize()) {
inSlot.setCount( size);
handled = true;
}
}
if (handled)
break;
}
}
return;
}
}
}
/*
* ItemStack itemstack =
* FurnaceRecipes.instance().getSmeltingResult(this.furnaceItemStacks[0]
* );
*
* if (this.furnaceItemStacks[2] == null) { this.furnaceItemStacks[2] =
* itemstack.copy(); } else if (this.furnaceItemStacks[2].getItem() ==
* itemstack.getItem()) { this.furnaceItemStacks[2].getCount() +=
* itemstack.getCount(); // Forge BugFix: Results may have multiple items
* }
*
* if (this.furnaceItemStacks[0].getItem() ==
* Item.getItemFromBlock(Blocks.SPONGE) &&
* this.furnaceItemStacks[0].getMetadata() == 1 &&
* this.furnaceItemStacks[1] != null &&
* this.furnaceItemStacks[1].getItem() == Items.BUCKET) {
* this.furnaceItemStacks[1] = new ItemStack(Items.WATER_BUCKET); }
*
* --this.furnaceItemStacks[0].getCount();
*
* if (this.furnaceItemStacks[0].getCount() <= 0) {
* this.furnaceItemStacks[0] = null; }
*/
}
示例15: onCrafting
import net.minecraft.util.math.MathHelper; //导入方法依赖的package包/类
/**
* the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
*/
protected void onCrafting(ItemStack stack)
{
stack.onCrafting(this.thePlayer.world, this.thePlayer, this.removeCount);
if (!this.thePlayer.world.isRemote)
{
int i = this.removeCount;
float f = FurnaceRecipes.instance().getSmeltingExperience(stack);
if (f == 0.0F)
{
i = 0;
}
else if (f < 1.0F)
{
int j = MathHelper.floor((float)i * f);
if (j < MathHelper.ceil((float)i * f) && Math.random() < (double)((float)i * f - (float)j))
{
++j;
}
i = j;
}
while (i > 0)
{
int k = EntityXPOrb.getXPSplit(i);
i -= k;
this.thePlayer.world.spawnEntityInWorld(new EntityXPOrb(this.thePlayer.world, this.thePlayer.posX, this.thePlayer.posY + 0.5D, this.thePlayer.posZ + 0.5D, k));
}
}
this.removeCount = 0;
if (stack.getItem() == Items.IRON_INGOT)
{
this.thePlayer.addStat(AchievementList.ACQUIRE_IRON);
}
if (stack.getItem() == Items.COOKED_FISH)
{
this.thePlayer.addStat(AchievementList.COOK_FISH);
}
}