Merge remote-tracking branch 'origin/master' into fabric-1.16
# Conflicts: # src/api/java/appeng/api/parts/IPart.java # src/main/java/appeng/block/AEBaseBlockItemChargeable.java # src/main/java/appeng/block/qnb/QnbFormedModel.java # src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java # src/main/java/appeng/bootstrap/ItemDefinitionBuilder.java # src/main/java/appeng/client/render/BakedModelUnwrapper.java # src/main/java/appeng/client/render/BasicUnbakedModel.java # src/main/java/appeng/client/render/FacadeItemModel.java # src/main/java/appeng/client/render/cablebus/CableBusModel.java # src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java # src/main/java/appeng/client/render/crafting/CraftingCubeModel.java # src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java # src/main/java/appeng/client/render/model/BiometricCardModel.java # src/main/java/appeng/client/render/model/ColorApplicatorModel.java # src/main/java/appeng/client/render/model/DriveBakedModel.java # src/main/java/appeng/client/render/model/DriveModel.java # src/main/java/appeng/client/render/model/GlassModel.java # src/main/java/appeng/client/render/model/MemoryCardModel.java # src/main/java/appeng/client/render/model/SkyCompassModel.java # src/main/java/appeng/client/render/spatial/SpatialPylonModel.java # src/main/java/appeng/client/render/tesr/ChestTileEntityRenderer.java # src/main/java/appeng/core/AERecipeType.java # src/main/java/appeng/core/AppEng.java # src/main/java/appeng/core/Registration.java # src/main/java/appeng/core/api/client/ApiCellModelRegistry.java # src/main/java/appeng/core/api/definitions/ApiItems.java # src/main/java/appeng/fluids/helper/DualityFluidInterface.java # src/main/java/appeng/items/misc/CrystalSeedItem.java # src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java # src/main/java/appeng/parts/automation/PlaneModel.java # src/main/java/appeng/recipes/handlers/GrinderRecipe.java # src/main/java/appeng/recipes/handlers/GrinderRecipeSerializer.java # src/main/java/appeng/recipes/handlers/InscriberRecipe.java # src/main/java/appeng/recipes/handlers/InscriberRecipeSerializer.java # src/main/java/appeng/spatial/SpatialDimensionManager.java # src/main/java/appeng/tile/networking/CableBusBlockEntity.java # src/main/java/appeng/tile/storage/SkyChestBlockEntity.java
This commit is contained in:
@@ -29,6 +29,7 @@ import javax.annotation.Nullable;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -40,7 +41,9 @@ import appeng.api.definitions.IBlockDefinition;
|
||||
import appeng.api.features.AEFeature;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseBlockItem;
|
||||
import appeng.block.AEBaseBlockItemChargeable;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.bootstrap.components.IClientSetupComponent;
|
||||
import appeng.bootstrap.definitions.TileEntityDefinition;
|
||||
import appeng.core.AppEng;
|
||||
import appeng.core.CreativeTab;
|
||||
@@ -149,6 +152,24 @@ class BlockDefinitionBuilder implements IBlockBuilder {
|
||||
Registry.register(Registry.ITEM, id, item);
|
||||
}
|
||||
|
||||
// Register the client-only item model property for chargeable items
|
||||
if (item instanceof AEBaseBlockItemChargeable) {
|
||||
AEBaseBlockItemChargeable chargeable = (AEBaseBlockItemChargeable) item;
|
||||
this.factory.addBootstrapComponent(new IClientSetupComponent() {
|
||||
@Override
|
||||
@Environment(EnvType.CLIENT)
|
||||
public void setup() {
|
||||
FabricModelPredicateProviderRegistry.register(item, AppEng.makeId("fill_level"),
|
||||
(is, world, entity) -> {
|
||||
double curPower = chargeable.getAECurrentPower(is);
|
||||
double maxPower = chargeable.getAEMaxPower(is);
|
||||
|
||||
return (int) Math.round(100 * curPower / maxPower);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Register all extra handlers
|
||||
this.bootstrapComponents.forEach(component -> this.factory.addBootstrapComponent(component.apply(block, item)));
|
||||
|
||||
|
||||
@@ -3,8 +3,7 @@ package appeng.bootstrap.components;
|
||||
import appeng.bootstrap.IBootstrapComponent;
|
||||
|
||||
/**
|
||||
* Will be run during
|
||||
* {@link net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent}.
|
||||
* Will be run on the client-side only.
|
||||
*/
|
||||
public interface IClientSetupComponent extends IBootstrapComponent {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user