51 lines
2.2 KiB
Java
51 lines
2.2 KiB
Java
|
package net.minecraft.client.renderer.entity;
|
||
|
|
||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||
|
import com.mojang.math.Axis;
|
||
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||
|
import net.minecraft.client.renderer.entity.state.ItemClusterRenderState;
|
||
|
import net.minecraft.client.renderer.item.ItemModelResolver;
|
||
|
import net.minecraft.util.Mth;
|
||
|
import net.minecraft.util.RandomSource;
|
||
|
import net.minecraft.world.entity.OminousItemSpawner;
|
||
|
import net.minecraft.world.item.ItemStack;
|
||
|
import net.minecraftforge.api.distmarker.Dist;
|
||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||
|
|
||
|
@OnlyIn(Dist.CLIENT)
|
||
|
public class OminousItemSpawnerRenderer extends EntityRenderer<OminousItemSpawner, ItemClusterRenderState> {
|
||
|
private static final float ROTATION_SPEED = 40.0F;
|
||
|
private static final int TICKS_SCALING = 50;
|
||
|
private final ItemModelResolver itemModelResolver;
|
||
|
private final RandomSource random = RandomSource.create();
|
||
|
|
||
|
protected OminousItemSpawnerRenderer(EntityRendererProvider.Context p_332134_) {
|
||
|
super(p_332134_);
|
||
|
this.itemModelResolver = p_332134_.getItemModelResolver();
|
||
|
}
|
||
|
|
||
|
public ItemClusterRenderState createRenderState() {
|
||
|
return new ItemClusterRenderState();
|
||
|
}
|
||
|
|
||
|
public void extractRenderState(OminousItemSpawner p_370185_, ItemClusterRenderState p_377250_, float p_369603_) {
|
||
|
super.extractRenderState(p_370185_, p_377250_, p_369603_);
|
||
|
ItemStack itemstack = p_370185_.getItem();
|
||
|
p_377250_.extractItemGroupRenderState(p_370185_, itemstack, this.itemModelResolver);
|
||
|
}
|
||
|
|
||
|
public void render(ItemClusterRenderState p_378520_, PoseStack p_330642_, MultiBufferSource p_333628_, int p_334934_) {
|
||
|
if (!p_378520_.item.isEmpty()) {
|
||
|
p_330642_.pushPose();
|
||
|
if (p_378520_.ageInTicks <= 50.0F) {
|
||
|
float f = Math.min(p_378520_.ageInTicks, 50.0F) / 50.0F;
|
||
|
p_330642_.scale(f, f, f);
|
||
|
}
|
||
|
|
||
|
float f1 = Mth.wrapDegrees(p_378520_.ageInTicks * 40.0F);
|
||
|
p_330642_.mulPose(Axis.YP.rotationDegrees(f1));
|
||
|
ItemEntityRenderer.renderMultipleFromCount(p_330642_, p_333628_, 15728880, p_378520_, this.random);
|
||
|
p_330642_.popPose();
|
||
|
}
|
||
|
}
|
||
|
}
|