MCPcopy Index your code
hub / github.com/GregTech6/gregtech6 / getBurnTime

Method getBurnTime

src/main/java/gregapi/GT_API_Proxy.java:1581–1624  ·  view source on GitHub ↗
(ItemStack aFuel)

Source from the content-addressed store, hash-verified

1579 }
1580
1581 @Override
1582 public int getBurnTime(ItemStack aFuel) {
1583 if (ST.invalid(aFuel) || FL.getFluid(aFuel, T) != null) return 0;
1584 Block aBlock = ST.block(aFuel);
1585 if (aBlock instanceof BlockRailBase ) return 0; // Needed so Railcrafts Tunnel Bore works properly and doesn't try to burn its Rails while laying them.
1586 if (aBlock instanceof BlockHugeMushroom ) return (3 * TICKS_PER_SMELT) / 2;
1587 if (aBlock == BlocksGT.BalesGrass ) return (9 * TICKS_PER_SMELT) / ((ST.meta_(aFuel) & 3) == 1 ? 2 : 4);
1588 if (aBlock instanceof BlockBaseBale ) return (9 * TICKS_PER_SMELT) / 4;
1589 if (aBlock instanceof BlockBasePlanks ) return (3 * TICKS_PER_SMELT) / 2;
1590 if (aBlock instanceof BlockBaseSapling ) return TICKS_PER_SMELT / 2;
1591 if (aBlock instanceof BlockBaseBeam || aBlock instanceof BlockBaseLog) return 6 * TICKS_PER_SMELT ;
1592 long rFuelValue = UT.NBT.getNBT(aFuel).getLong(NBT_FUEL_VALUE);
1593 if (aFuel.getItem() instanceof MultiItemRandom) {
1594 Short tFuelValue = ((MultiItemRandom)aFuel.getItem()).mBurnValues.get(ST.meta_(aFuel));
1595 if (tFuelValue != null) rFuelValue = Math.max(rFuelValue, tFuelValue);
1596 } else {
1597 if (OD.plankAnyWood.is_(aFuel )) return 3 * TICKS_PER_SMELT / 2;
1598 if (OD.logWood .is_(aFuel )) return 6 * TICKS_PER_SMELT ;
1599 if (OD.itemResin .is_(aFuel )) return TICKS_PER_SMELT / 2;
1600 if (IL.TF_Sapling.equal(aFuel, T, T)) return TICKS_PER_SMELT / 2;
1601 }
1602
1603 OreDictItemData tData = OM.anydata_(aFuel);
1604 if (tData != null && (tData.mFurnaceFuel || rFuelValue != 0)) {
1605 long tBurnTime = 0;
1606 if (tData.mPrefix == null) {
1607 for (OreDictMaterialStack tMaterial : tData.getAllMaterialStacks()) tBurnTime += UT.Code.units(tMaterial.mMaterial.mFurnaceBurnTime, U, tMaterial.mAmount, F);
1608 } else if (tData.mPrefix == OP.oreRaw) {
1609 tBurnTime = tData.mMaterial.mMaterial.mFurnaceBurnTime;
1610 } else if (tData.mPrefix == OP.blockRaw) {
1611 tBurnTime = tData.mMaterial.mMaterial.mFurnaceBurnTime * 10;
1612 } else if (tData.mPrefix.contains(TD.Prefix.BURNABLE)) {
1613 for (OreDictMaterialStack tMaterial : tData.getAllMaterialStacks()) tBurnTime += UT.Code.units(tMaterial.mMaterial.mFurnaceBurnTime, U, tMaterial.mAmount, F);
1614 if (tData.mPrefix == OP.stick && ANY.Wood.mToThis.contains(tData.mMaterial.mMaterial)) return (int)UT.Code.bind(0, 32000, Math.max( TICKS_PER_SMELT /2, tBurnTime));
1615 if (tData.mPrefix == OP.stickLong && ANY.Wood.mToThis.contains(tData.mMaterial.mMaterial)) return (int)UT.Code.bind(0, 32000, Math.max( TICKS_PER_SMELT , tBurnTime));
1616 if (tData.mPrefix == OP.blockPlate && ANY.Wood.mToThis.contains(tData.mMaterial.mMaterial)) return (int)UT.Code.bind(0, 32000, Math.max((TICKS_PER_SMELT* 27L)/2, tBurnTime));
1617 if (tData.mPrefix == OP.crateGtPlate && ANY.Wood.mToThis.contains(tData.mMaterial.mMaterial)) return (int)UT.Code.bind(0, 32000, Math.max((TICKS_PER_SMELT* 51L)/2, tBurnTime));
1618 if (tData.mPrefix == OP.crateGt64Plate && ANY.Wood.mToThis.contains(tData.mMaterial.mMaterial)) return (int)UT.Code.bind(0, 32000, Math.max((TICKS_PER_SMELT*195L)/2, tBurnTime));
1619 }
1620 rFuelValue = Math.max(rFuelValue, tBurnTime);
1621 }
1622 // return at most 160 Smelts, without any fraction smelts.
1623 return (int)UT.Code.bind(0, 32000, rFuelValue);
1624 }
1625}

Callers

nothing calls this directly

Calls 15

invalidMethod · 0.95
getFluidMethod · 0.95
blockMethod · 0.95
meta_Method · 0.95
anydata_Method · 0.95
getAllMaterialStacksMethod · 0.95
getNBTMethod · 0.80
unitsMethod · 0.80
bindMethod · 0.80
getLongMethod · 0.65
getItemMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected