public ItemStack getEggs() { if (TFC_Time.getTotalTicks() >= this.nextEgg) { this.nextEgg = TFC_Time.getTotalTicks() + EggTime; return new ItemStack(TFCItems.Egg, 1); } return null; }
public EntityChickenTFC(World par1World) { super(par1World); this.setSize(0.3F, 0.7F); this.timeUntilNextEgg = 9999; // Here we set the vanilla egg timer to 9999 this.nextEgg = TFC_Time.getTotalTicks() + EggTime; hunger = 168000; mateSizeMod = 1f; sex = rand.nextInt(2); this.tasks.taskEntries.clear(); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(1, new EntityAIPanic(this, 1.4D)); this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D)); this.tasks.addTask(5, new EntityAIWander(this, 1.0D)); this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(7, new EntityAILookIdle(this)); this.tasks.addTask(6, this.aiEatGrass); addAI(); size_mod = (((rand.nextInt((degreeOfDiversion + 1) * 10) * (rand.nextBoolean() ? 1 : -1)) / 100f) + 1F) * (1.0F - 0.1F * sex); // We hijack the growingAge to hold the day of birth rather // than number of ticks to next growth event. We want spawned // animals to be adults, so we set their birthdays far enough back // in time such that they reach adulthood now. // this.setAge((int) TFC_Time.getTotalDays() - getNumberOfDaysToAdult()); // For Testing Only(makes spawned animals into babies) // this.setGrowingAge((int) TFC_Time.getTotalDays()); }
public void roosterCrow() { if ((TFC_Time.getTotalTicks() - 15) % TFC_Time.dayLength == 0 && getGender() == GenderEnum.MALE && isAdult()) { this.playSound(TFC_Sounds.ROOSTERCROW, 10, rand.nextFloat() + 0.5F); } }
public void StartPitFire() { int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); if (meta == 15) { TileEntityLogPile telp = (TileEntityLogPile) worldObj.getBlockTileEntity(xCoord, yCoord + 1, zCoord); logsForBurn = telp.getNumberOfLogs(); telp.clearContents(); worldObj.setBlock(xCoord, yCoord + 1, zCoord, Block.fire.blockID); int ratio = TFC_Settings.pitKilnBurnTime / 16; int burnLength = (int) (TFC_Time.hourLength * (logsForBurn == 16 ? TFC_Settings.pitKilnBurnTime : ratio * logsForBurn)); burnStart = TFC_Time.getTotalTicks(); } }
@Override public void updateEntity() { // If there are no logs for burning then we dont need to tick at all if (!worldObj.isRemote && logsForBurn > 0) { // Check for any Logs that may have been thrown in the fire and add them to the fuel supply List list = worldObj.getEntitiesWithinAABB( EntityItem.class, AxisAlignedBB.getBoundingBox( xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 2, zCoord + 1)); if (list != null && !list.isEmpty()) { for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { EntityItem entity = (EntityItem) iterator.next(); if (entity.getEntityItem().itemID == TFCItems.Logs.itemID) { logsForBurn += entity.getEntityItem().stackSize; } } } int blockAboveID = worldObj.getBlockId(xCoord, yCoord + 1, zCoord); // Make sure to keep the fire going throughout the length of the burn if (blockAboveID != Block.fire.blockID && TFC_Time.getTotalTicks() - burnStart < TFC_Time.hourLength * TFC_Settings.pitKilnBurnTime) { if (blockAboveID == 0 || worldObj.getBlockMaterial(xCoord, yCoord + 1, zCoord).getCanBurn()) worldObj.setBlock(xCoord, yCoord + 1, zCoord, Block.fire.blockID); else logsForBurn = 0; } // If the total time passes then we complete the burn and turn the clay into ceramic if (logsForBurn > 0 && blockAboveID == Block.fire.blockID && TFC_Time.getTotalTicks() > burnStart + (TFC_Settings.pitKilnBurnTime * TFC_Time.hourLength)) { worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, 0, 3); worldObj.setBlock(xCoord, yCoord + 1, zCoord, 0); if (inventory[0] != null) { inventory[0] = KilnCraftingManager.getInstance().findCompleteRecipe(new KilnRecipe(inventory[0], 0)); if (inventory[0].getItem() instanceof ItemPotteryBase) { ((ItemPotteryBase) inventory[0].getItem()) .onDoneCooking(worldObj, inventory[0], Alloy.EnumTier.TierI); } } if (inventory[1] != null) { inventory[1] = KilnCraftingManager.getInstance().findCompleteRecipe(new KilnRecipe(inventory[1], 0)); if (inventory[1].getItem() instanceof ItemPotteryBase) { ((ItemPotteryBase) inventory[1].getItem()) .onDoneCooking(worldObj, inventory[1], Alloy.EnumTier.TierI); } } if (inventory[2] != null) { inventory[2] = KilnCraftingManager.getInstance().findCompleteRecipe(new KilnRecipe(inventory[2], 0)); if (inventory[2].getItem() instanceof ItemPotteryBase) { ((ItemPotteryBase) inventory[2].getItem()) .onDoneCooking(worldObj, inventory[2], Alloy.EnumTier.TierI); } } if (inventory[3] != null) { inventory[3] = KilnCraftingManager.getInstance().findCompleteRecipe(new KilnRecipe(inventory[3], 0)); if (inventory[3].getItem() instanceof ItemPotteryBase) { ((ItemPotteryBase) inventory[3].getItem()) .onDoneCooking(worldObj, inventory[3], Alloy.EnumTier.TierI); } } logsForBurn = 0; broadcastPacketInRange(createUpdatePacket()); } } }