@Override
public void renderTileEntityFast(@Nonnull TilePhenomena phenomena, double x, double y, double z, float partialTick, int breakStage, float partial, @Nullable BufferBuilder renderer) {
if(blockRenderer == null) blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher();
BlockPos pos = phenomena.getPos();
IBlockAccess world = MinecraftForgeClient.getRegionRenderCache(phenomena.getWorld(), pos);
IBlockState state = getState(phenomena, world, pos);
if(state instanceof IExtendedBlockState) {
IExtendedBlockState extendedState = (IExtendedBlockState) state;
if(extendedState.getUnlistedNames().contains(Properties.AnimationProperty)) {
float time = ((20 - phenomena.timer)) / 20F; // Using tile timer instead of world time.
IAnimationStateMachine capability = phenomena.getCapability(CapabilityAnimation.ANIMATION_CAPABILITY, null);
if(capability != null) {
Pair<IModelState, Iterable<Event>> pair = capability.apply(time);
extendedState = extendedState.withProperty(Properties.AnimationProperty, pair.getLeft());
IBakedModel model = getModel(state);
assert renderer != null;
renderer.setTranslation(x - pos.getX(), y - pos.getY(), z - pos.getZ());
blockRenderer.getBlockModelRenderer().renderModel(world, model, extendedState, pos, renderer, false);
}
}
}
}
PhenomenaRenderer.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:Solar
作者:
评论列表
文章目录