mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 16:24:23 +01:00
Merge RenderPonyEvoker + RenderPonyIllusionIllager + RenderPonyVindicator = RenderPonyIllager
This commit is contained in:
parent
235494cd6c
commit
e14b601b9f
6 changed files with 131 additions and 182 deletions
|
@ -7,13 +7,11 @@ import com.minelittlepony.hdskins.gui.EntityPonyModel;
|
||||||
import com.minelittlepony.hdskins.gui.RenderPonyModel;
|
import com.minelittlepony.hdskins.gui.RenderPonyModel;
|
||||||
import com.minelittlepony.model.PMAPI;
|
import com.minelittlepony.model.PMAPI;
|
||||||
import com.minelittlepony.render.player.RenderPonyPlayer;
|
import com.minelittlepony.render.player.RenderPonyPlayer;
|
||||||
import com.minelittlepony.render.ponies.RenderPonyEvoker;
|
import com.minelittlepony.render.ponies.RenderPonyIllager;
|
||||||
import com.minelittlepony.render.ponies.RenderPonyIllusionIllager;
|
|
||||||
import com.minelittlepony.render.ponies.RenderPonyPigman;
|
import com.minelittlepony.render.ponies.RenderPonyPigman;
|
||||||
import com.minelittlepony.render.ponies.RenderPonySkeleton;
|
import com.minelittlepony.render.ponies.RenderPonySkeleton;
|
||||||
import com.minelittlepony.render.ponies.RenderPonyVex;
|
import com.minelittlepony.render.ponies.RenderPonyVex;
|
||||||
import com.minelittlepony.render.ponies.RenderPonyVillager;
|
import com.minelittlepony.render.ponies.RenderPonyVillager;
|
||||||
import com.minelittlepony.render.ponies.RenderPonyVindicator;
|
|
||||||
import com.minelittlepony.render.ponies.RenderPonyZombie;
|
import com.minelittlepony.render.ponies.RenderPonyZombie;
|
||||||
import com.minelittlepony.render.ponies.RenderPonyZombieVillager;
|
import com.minelittlepony.render.ponies.RenderPonyZombieVillager;
|
||||||
import com.mumfrey.liteloader.util.ModUtilities;
|
import com.mumfrey.liteloader.util.ModUtilities;
|
||||||
|
@ -104,9 +102,9 @@ public class PonyRenderManager {
|
||||||
|
|
||||||
if (config.illagers) {
|
if (config.illagers) {
|
||||||
pushNewRenderer(rm, EntityVex.class, new RenderPonyVex(rm));
|
pushNewRenderer(rm, EntityVex.class, new RenderPonyVex(rm));
|
||||||
pushNewRenderer(rm, EntityEvoker.class, new RenderPonyEvoker(rm));
|
pushNewRenderer(rm, EntityEvoker.class, new RenderPonyIllager.Evoker(rm));
|
||||||
pushNewRenderer(rm, EntityVindicator.class, new RenderPonyVindicator(rm));
|
pushNewRenderer(rm, EntityVindicator.class, new RenderPonyIllager.Vindicator(rm));
|
||||||
pushNewRenderer(rm, EntityIllusionIllager.class, new RenderPonyIllusionIllager(rm));
|
pushNewRenderer(rm, EntityIllusionIllager.class, new RenderPonyIllager.Illusionist(rm));
|
||||||
MineLittlePony.logger.info("Illagers are now ponies.");
|
MineLittlePony.logger.info("Illagers are now ponies.");
|
||||||
} else {
|
} else {
|
||||||
restoreRenderer(EntityVex.class);
|
restoreRenderer(EntityVex.class);
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.minelittlepony.render.layer;
|
||||||
|
|
||||||
|
import com.minelittlepony.model.ponies.ModelIllagerPony;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.entity.RenderLivingBase;
|
||||||
|
import net.minecraft.entity.monster.AbstractIllager;
|
||||||
|
import net.minecraft.entity.monster.AbstractIllager.IllagerArmPose;
|
||||||
|
import net.minecraft.util.EnumHandSide;
|
||||||
|
|
||||||
|
public class LayerHeldItemIllager<T extends AbstractIllager> extends LayerHeldPonyItem<T> {
|
||||||
|
|
||||||
|
public LayerHeldItemIllager(RenderLivingBase<T> livingPony) {
|
||||||
|
super(livingPony);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doPonyRender(T entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
|
||||||
|
if (shouldRender(entity)) {
|
||||||
|
super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void renderArm(EnumHandSide side) {
|
||||||
|
((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldRender(T entity) {
|
||||||
|
return entity.getArmPose() != IllagerArmPose.CROSSED;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,50 +0,0 @@
|
||||||
package com.minelittlepony.render.ponies;
|
|
||||||
|
|
||||||
import com.minelittlepony.model.PMAPI;
|
|
||||||
import com.minelittlepony.model.ponies.ModelIllagerPony;
|
|
||||||
import com.minelittlepony.render.RenderPonyMob;
|
|
||||||
import com.minelittlepony.render.layer.LayerHeldPonyItem;
|
|
||||||
|
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
|
||||||
import net.minecraft.client.renderer.entity.RenderManager;
|
|
||||||
import net.minecraft.entity.monster.EntityEvoker;
|
|
||||||
import net.minecraft.util.EnumHandSide;
|
|
||||||
import net.minecraft.util.ResourceLocation;
|
|
||||||
|
|
||||||
public class RenderPonyEvoker extends RenderPonyMob<EntityEvoker> {
|
|
||||||
|
|
||||||
private static final ResourceLocation EVOKER = new ResourceLocation("minelittlepony", "textures/entity/illager/evoker_pony.png");
|
|
||||||
|
|
||||||
public RenderPonyEvoker(RenderManager manager) {
|
|
||||||
super(manager, PMAPI.illager);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void addLayers() {
|
|
||||||
addLayer(new LayerHeldPonyItem<EntityEvoker>(this) {
|
|
||||||
@Override
|
|
||||||
public void doPonyRender(EntityEvoker entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
|
|
||||||
if (entity.isSpellcasting()) {
|
|
||||||
super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void postRenderArm(EnumHandSide side) {
|
|
||||||
((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ResourceLocation getTexture(EntityEvoker entity) {
|
|
||||||
return EVOKER;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void preRenderCallback(EntityEvoker entity, float ticks) {
|
|
||||||
super.preRenderCallback(entity, ticks);
|
|
||||||
GlStateManager.scale(0.9375F, 0.9375F, 0.9375F);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
package com.minelittlepony.render.ponies;
|
||||||
|
|
||||||
|
import com.minelittlepony.model.PMAPI;
|
||||||
|
import com.minelittlepony.render.RenderPonyMob;
|
||||||
|
import com.minelittlepony.render.layer.LayerHeldItemIllager;
|
||||||
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
|
import net.minecraft.client.renderer.entity.RenderManager;
|
||||||
|
import net.minecraft.entity.monster.AbstractIllager;
|
||||||
|
import net.minecraft.entity.monster.EntityEvoker;
|
||||||
|
import net.minecraft.entity.monster.EntityIllusionIllager;
|
||||||
|
import net.minecraft.entity.monster.EntityVindicator;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
|
||||||
|
public abstract class RenderPonyIllager<T extends AbstractIllager> extends RenderPonyMob<T> {
|
||||||
|
|
||||||
|
public static final ResourceLocation ILLUSIONIST = new ResourceLocation("minelittlepony", "textures/entity/illager/illusionist_pony.png");
|
||||||
|
public static final ResourceLocation EVOKER = new ResourceLocation("minelittlepony", "textures/entity/illager/evoker_pony.png");
|
||||||
|
public static final ResourceLocation VINDICATOR = new ResourceLocation("minelittlepony", "textures/entity/illager/vindicator_pony.png");
|
||||||
|
|
||||||
|
public RenderPonyIllager(RenderManager manager) {
|
||||||
|
super(manager, PMAPI.illager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addLayers() {
|
||||||
|
addLayer(new LayerHeldItemIllager<>(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void preRenderCallback(T entity, float ticks) {
|
||||||
|
super.preRenderCallback(entity, ticks);
|
||||||
|
GlStateManager.scale(0.9375F, 0.9375F, 0.9375F);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Vindicator extends RenderPonyIllager<EntityVindicator> {
|
||||||
|
|
||||||
|
public Vindicator(RenderManager manager) {
|
||||||
|
super(manager);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ResourceLocation getTexture(EntityVindicator entity) {
|
||||||
|
return VINDICATOR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Evoker extends RenderPonyIllager<EntityEvoker> {
|
||||||
|
|
||||||
|
public Evoker(RenderManager manager) {
|
||||||
|
super(manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ResourceLocation getTexture(EntityEvoker entity) {
|
||||||
|
return EVOKER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Illusionist extends RenderPonyIllager<EntityIllusionIllager> {
|
||||||
|
|
||||||
|
public Illusionist(RenderManager manager) {
|
||||||
|
super(manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ResourceLocation getTexture(EntityIllusionIllager entity) {
|
||||||
|
return ILLUSIONIST;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doRender(EntityIllusionIllager entity, double x, double y, double z, float yaw, float ticks) {
|
||||||
|
if (entity.isInvisible()) {
|
||||||
|
Vec3d[] clones = entity.getRenderLocations(ticks);
|
||||||
|
float rotation = handleRotationFloat(entity, ticks);
|
||||||
|
|
||||||
|
for (int i = 0; i < clones.length; ++i) {
|
||||||
|
super.doRender(entity,
|
||||||
|
x + clones[i].x + MathHelper.cos(i + rotation * 0.5F) * 0.025D,
|
||||||
|
y + clones[i].y + MathHelper.cos(i + rotation * 0.75F) * 0.0125D,
|
||||||
|
z + clones[i].z + MathHelper.cos(i + rotation * 0.7F) * 0.025D,
|
||||||
|
yaw, ticks);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.doRender(entity, x, y, z, yaw, ticks);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isVisible(EntityIllusionIllager entity) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,75 +0,0 @@
|
||||||
package com.minelittlepony.render.ponies;
|
|
||||||
|
|
||||||
import com.minelittlepony.model.PMAPI;
|
|
||||||
import com.minelittlepony.model.ponies.ModelIllagerPony;
|
|
||||||
import com.minelittlepony.render.RenderPonyMob;
|
|
||||||
import com.minelittlepony.render.layer.LayerHeldPonyItem;
|
|
||||||
|
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
|
||||||
import net.minecraft.client.renderer.entity.RenderManager;
|
|
||||||
import net.minecraft.entity.monster.EntityIllusionIllager;
|
|
||||||
import net.minecraft.util.EnumHandSide;
|
|
||||||
import net.minecraft.util.ResourceLocation;
|
|
||||||
import net.minecraft.util.math.MathHelper;
|
|
||||||
import net.minecraft.util.math.Vec3d;
|
|
||||||
|
|
||||||
|
|
||||||
public class RenderPonyIllusionIllager extends RenderPonyMob<EntityIllusionIllager> {
|
|
||||||
|
|
||||||
private static final ResourceLocation TEXTURE = new ResourceLocation("minelittlepony", "textures/entity/illager/illusionist_pony.png");
|
|
||||||
|
|
||||||
public RenderPonyIllusionIllager(RenderManager manager) {
|
|
||||||
super(manager, PMAPI.illager);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void addLayers() {
|
|
||||||
addLayer(new LayerHeldPonyItem<EntityIllusionIllager>(this) {
|
|
||||||
@Override
|
|
||||||
public void doPonyRender(EntityIllusionIllager entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
|
|
||||||
if (entity.isSpellcasting() || entity.isAggressive()) {
|
|
||||||
super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void postRenderArm(EnumHandSide side) {
|
|
||||||
((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ResourceLocation getTexture(EntityIllusionIllager entity) {
|
|
||||||
return TEXTURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void preRenderCallback(EntityIllusionIllager entity, float ticks) {
|
|
||||||
super.preRenderCallback(entity, ticks);
|
|
||||||
GlStateManager.scale(0.9375F, 0.9375F, 0.9375F);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void doRender(EntityIllusionIllager entity, double x, double y, double z, float yaw, float ticks) {
|
|
||||||
if (entity.isInvisible()) {
|
|
||||||
Vec3d[] vects = entity.getRenderLocations(ticks);
|
|
||||||
float f = handleRotationFloat(entity, ticks);
|
|
||||||
|
|
||||||
for (int i = 0; i < vects.length; ++i) {
|
|
||||||
super.doRender(entity,
|
|
||||||
x + vects[i].x + MathHelper.cos(i + f * 0.5F) * 0.025D,
|
|
||||||
y + vects[i].y + MathHelper.cos(i + f * 0.75F) * 0.0125D,
|
|
||||||
z + vects[i].z + MathHelper.cos(i + f * 0.7F) * 0.025D,
|
|
||||||
yaw, ticks);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.doRender(entity, x, y, z, yaw, ticks);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean isVisible(EntityIllusionIllager entity) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
package com.minelittlepony.render.ponies;
|
|
||||||
|
|
||||||
import com.minelittlepony.model.PMAPI;
|
|
||||||
import com.minelittlepony.model.ponies.ModelIllagerPony;
|
|
||||||
import com.minelittlepony.render.RenderPonyMob;
|
|
||||||
import com.minelittlepony.render.layer.LayerHeldPonyItem;
|
|
||||||
|
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
|
||||||
import net.minecraft.client.renderer.entity.RenderManager;
|
|
||||||
import net.minecraft.entity.monster.EntityVindicator;
|
|
||||||
import net.minecraft.util.EnumHandSide;
|
|
||||||
import net.minecraft.util.ResourceLocation;
|
|
||||||
|
|
||||||
public class RenderPonyVindicator extends RenderPonyMob<EntityVindicator> {
|
|
||||||
|
|
||||||
private static final ResourceLocation VINDICATOR = new ResourceLocation("minelittlepony", "textures/entity/illager/vindicator_pony.png");
|
|
||||||
|
|
||||||
public RenderPonyVindicator(RenderManager manager) {
|
|
||||||
super(manager, PMAPI.illager);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void addLayers() {
|
|
||||||
this.addLayer(new LayerHeldPonyItem<EntityVindicator>(this) {
|
|
||||||
@Override
|
|
||||||
public void doPonyRender(EntityVindicator entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
|
|
||||||
if (entity.isAggressive()) {
|
|
||||||
super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void postRenderArm(EnumHandSide side) {
|
|
||||||
((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ResourceLocation getTexture(EntityVindicator entity) {
|
|
||||||
return VINDICATOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void preRenderCallback(EntityVindicator entity, float ticks) {
|
|
||||||
super.preRenderCallback(entity, ticks);
|
|
||||||
GlStateManager.scale(0.9375F, 0.9375F, 0.9375F);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue