mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-27 15:17:59 +01:00
Fixed fire overlays not rendering for disguises
This commit is contained in:
parent
e532b20137
commit
6f2ef7719a
2 changed files with 8 additions and 15 deletions
|
@ -21,7 +21,6 @@ import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.client.util.math.Vector3f;
|
import net.minecraft.client.util.math.Vector3f;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
@ -55,6 +54,8 @@ public class WorldRenderDelegate {
|
||||||
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(roll));
|
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(roll));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int fireTicks = pony.getOwner().doesRenderOnFire() ? 1 : 0;
|
||||||
|
|
||||||
return pony.getSpellOrEmpty(DisguiseSpell.class, true).map(effect -> {
|
return pony.getSpellOrEmpty(DisguiseSpell.class, true).map(effect -> {
|
||||||
effect.update(pony, false);
|
effect.update(pony, false);
|
||||||
|
|
||||||
|
@ -62,10 +63,10 @@ public class WorldRenderDelegate {
|
||||||
Entity e = ve.getAppearance();
|
Entity e = ve.getAppearance();
|
||||||
|
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
renderDisguise(dispatcher, ve, e, x, y, z, tickDelta, matrices, vertexConsumers, light);
|
renderDisguise(dispatcher, ve, e, x, y, z, fireTicks, tickDelta, matrices, vertexConsumers, light);
|
||||||
ve.getAttachments().forEach(ee -> {
|
ve.getAttachments().forEach(ee -> {
|
||||||
Vec3d difference = ee.getPos().subtract(e.getPos());
|
Vec3d difference = ee.getPos().subtract(e.getPos());
|
||||||
renderDisguise(dispatcher, ve, ee, x + difference.x, y + difference.y, z + difference.z, tickDelta, matrices, vertexConsumers, light);
|
renderDisguise(dispatcher, ve, ee, x + difference.x, y + difference.y, z + difference.z, fireTicks, tickDelta, matrices, vertexConsumers, light);
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEntityRender(pony, matrices);
|
afterEntityRender(pony, matrices);
|
||||||
|
@ -86,7 +87,7 @@ public class WorldRenderDelegate {
|
||||||
|
|
||||||
public void renderDisguise(EntityRenderDispatcher dispatcher, Disguise ve, Entity e,
|
public void renderDisguise(EntityRenderDispatcher dispatcher, Disguise ve, Entity e,
|
||||||
double x, double y, double z,
|
double x, double y, double z,
|
||||||
float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light) {
|
int fireTicks, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light) {
|
||||||
|
|
||||||
if (ve.isAxisAligned() && (x != 0 || y != 0 || z != 0)) {
|
if (ve.isAxisAligned() && (x != 0 || y != 0 || z != 0)) {
|
||||||
Vec3d cam = MinecraftClient.getInstance().gameRenderer.getCamera().getPos();
|
Vec3d cam = MinecraftClient.getInstance().gameRenderer.getCamera().getPos();
|
||||||
|
@ -124,7 +125,9 @@ public class WorldRenderDelegate {
|
||||||
model.sneaking = e.isSneaking();
|
model.sneaking = e.isSneaking();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e.setFireTicks(fireTicks);
|
||||||
dispatcher.render(e, x, y, z, e.yaw, tickDelta, matrices, vertexConsumers, light);
|
dispatcher.render(e, x, y, z, e.yaw, tickDelta, matrices, vertexConsumers, light);
|
||||||
|
e.setFireTicks(0);
|
||||||
|
|
||||||
if (model != null) {
|
if (model != null) {
|
||||||
model.sneaking = false;
|
model.sneaking = false;
|
||||||
|
@ -160,14 +163,4 @@ public class WorldRenderDelegate {
|
||||||
entity.prevPitch *= -1;
|
entity.prevPitch *= -1;
|
||||||
entity.pitch *= -1;
|
entity.pitch *= -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void applyWorldTransform(MatrixStack matrices, float tickDelta) {
|
|
||||||
PlayerEntity player = MinecraftClient.getInstance().player;
|
|
||||||
|
|
||||||
if (player != null && MinecraftClient.getInstance().cameraEntity == player) {
|
|
||||||
float roll = Pony.of(player).getCamera().calculateRoll();
|
|
||||||
|
|
||||||
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(roll));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,7 +194,7 @@ public class EntityBehaviour<T extends Entity> {
|
||||||
((ItemWielder)to).updateItemUsage(from.getActiveHand(), from.getActiveItem(), from.getItemUseTimeLeft());
|
((ItemWielder)to).updateItemUsage(from.getActiveHand(), from.getActiveItem(), from.getItemUseTimeLeft());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (from.age < 100 || from instanceof PlayerEntity && ((PlayerEntity)from).isCreative()) {
|
if (from.age < 100 || from instanceof PlayerEntity && (((PlayerEntity)from).isCreative() || ((PlayerEntity)from).isSpectator())) {
|
||||||
to.extinguish();
|
to.extinguish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue