NaturesAura/src/main/java/de/ellpeck/naturesaura/entities/render/RenderEffectInhibitor.java

49 lines
1.9 KiB
Java
Raw Normal View History

package de.ellpeck.naturesaura.entities.render;
2020-01-21 23:02:39 +01:00
import com.mojang.blaze3d.platform.GlStateManager;
import de.ellpeck.naturesaura.Helper;
import de.ellpeck.naturesaura.entities.EntityEffectInhibitor;
2020-01-26 01:41:49 +01:00
import de.ellpeck.naturesaura.items.ItemEffectPowder;
import de.ellpeck.naturesaura.items.ModItems;
2019-10-20 22:30:49 +02:00
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
2019-10-20 22:30:49 +02:00
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
2019-10-20 22:30:49 +02:00
@OnlyIn(Dist.CLIENT)
public class RenderEffectInhibitor extends EntityRenderer<EntityEffectInhibitor> {
private final Map<ResourceLocation, ItemStack> items = new HashMap<>();
2019-10-20 22:30:49 +02:00
public RenderEffectInhibitor(EntityRendererManager renderManager) {
super(renderManager);
}
@Nullable
@Override
protected ResourceLocation getEntityTexture(EntityEffectInhibitor entity) {
2019-10-20 22:30:49 +02:00
return AtlasTexture.LOCATION_BLOCKS_TEXTURE;
}
@Override
public void doRender(EntityEffectInhibitor entity, double x, double y, double z, float entityYaw, float partialTicks) {
GlStateManager.pushMatrix();
2019-02-21 12:42:45 +01:00
float time = entity.renderTicks + entity.getEntityId() + partialTicks;
float bob = (float) Math.sin(time / 10F) * 0.05F;
2020-01-21 23:02:39 +01:00
GlStateManager.translated(x, y + 0.15F + bob, z);
GlStateManager.rotatef((time * 3) % 360, 0F, 1F, 0F);
GlStateManager.scalef(0.5F, 0.5F, 0.5F);
ResourceLocation effect = entity.getInhibitedEffect();
Helper.renderItemInWorld(this.items.computeIfAbsent(effect,
2020-01-26 01:41:49 +01:00
res -> ItemEffectPowder.setEffect(new ItemStack(ModItems.EFFECT_POWDER), effect)));
GlStateManager.popMatrix();
}
}