Add frost barrier spell

This commit is contained in:
Electroblob77
2020-09-27 17:48:37 +01:00
parent a72ac33768
commit c05f4001fd
18 changed files with 426 additions and 19 deletions
@@ -817,6 +817,7 @@ public class ClientProxy extends CommonProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityRadiantTotem.class, RenderRadiantTotem::new);
RenderingRegistry.registerEntityRenderingHandler(EntityBoulder.class, RenderBoulder::new);
RenderingRegistry.registerEntityRenderingHandler(EntityWitheringTotem.class, RenderWitheringTotem::new);
RenderingRegistry.registerEntityRenderingHandler(EntityIceBarrier.class, RenderIceBarrier::new);
//RenderingRegistry.registerEntityRenderingHandler(EntityContainmentField.class, RenderContainmentField::new);
// Stuff that doesn't render
@@ -0,0 +1,35 @@
package electroblob.wizardry.client.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBox;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
// Made with Blockbench 3.5.4
public class ModelIceBarrier extends ModelBase {
private final ModelRenderer mainGroup;
public ModelIceBarrier(){
textureWidth = 64;
textureHeight = 64;
mainGroup = new ModelRenderer(this);
mainGroup.setRotationPoint(0.0F, 24.0F, 0.0F);
setRotationAngle(mainGroup, 0.0F, 0.0F, 0.7854F);
mainGroup.cubeList.add(new ModelBox(mainGroup, 0, 0, -14.5F, -14.5F, -1.5F, 29, 29, 3, 0.0F, false));
mainGroup.cubeList.add(new ModelBox(mainGroup, 0, 32, -9.0F, -9.0F, -4.0F, 18, 18, 8, 0.0F, false));
}
@Override
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
mainGroup.render(f5);
}
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
modelRenderer.rotateAngleX = x;
modelRenderer.rotateAngleY = y;
modelRenderer.rotateAngleZ = z;
}
}
@@ -0,0 +1,50 @@
package electroblob.wizardry.client.renderer.entity;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.client.model.ModelIceBarrier;
import electroblob.wizardry.entity.construct.EntityIceBarrier;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.util.ResourceLocation;
public class RenderIceBarrier extends Render<EntityIceBarrier> {
private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID, "textures/entity/ice_barrier.png");
private ModelIceBarrier model = new ModelIceBarrier();
public RenderIceBarrier(RenderManager manager){
super(manager);
}
@Override
public void doRender(EntityIceBarrier entity, double x, double y, double z, float yaw, float partialTicks){
GlStateManager.pushMatrix();
GlStateManager.translate(x, y + entity.height/2, z);
GlStateManager.rotate(180, 0F, 0F, 1F);
GlStateManager.rotate(yaw, 0, 1, 0);
//GlStateManager.rotate(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks, 0, 0, 1);
GlStateManager.translate(0, -entity.height/2 - 0.3, 0);
// Pass in -1 for the lifetime as the boulder crumbles when the time expires
// float s = DrawingUtils.smoothScaleFactor(-1, entity.ticksExisted, partialTicks, 10, 10);
float s = entity.getSizeMultiplier();
GlStateManager.scale(s, s, s);
// GlStateManager.translate(0, 0.875, 0); // No idea why it starts 7/8 of a block too low, but it does
this.bindTexture(TEXTURE);
model.render(entity, 0, 0, 0, 0, 0, 0.0625f);
GlStateManager.popMatrix();
}
@Override
protected ResourceLocation getEntityTexture(EntityIceBarrier entity){
return TEXTURE;
}
}