From 002ace184604b54c13a1959736538162df002620 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 27 Feb 2021 22:35:07 +0200 Subject: [PATCH] Wings of icarus will become corrupted when in the nether --- .../client/render/WingsFeatureRenderer.java | 3 ++- .../unicopia/entity/player/PlayerPhysics.java | 14 +++++++++++--- .../minelittlepony/unicopia/item/AmuletItem.java | 2 +- .../textures/models/wings/icarus_corrupted.png | Bin 0 -> 1002 bytes 4 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/unicopia/textures/models/wings/icarus_corrupted.png diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/WingsFeatureRenderer.java b/src/main/java/com/minelittlepony/unicopia/client/render/WingsFeatureRenderer.java index c749f5da..46593863 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/WingsFeatureRenderer.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/WingsFeatureRenderer.java @@ -20,6 +20,7 @@ import net.minecraft.util.Identifier; public class WingsFeatureRenderer implements AccessoryFeatureRenderer.Feature { private static final Identifier ICARUS_WINGS = new Identifier("unicopia", "textures/models/wings/icarus.png"); + private static final Identifier ICARUS_WINGS_CORRUPTED = new Identifier("unicopia", "textures/models/wings/icarus_corrupted.png"); private static final Identifier PEGASUS_WINGS = new Identifier("unicopia", "textures/models/wings/pegasus.png"); private final WingsModel model = new WingsModel(); @@ -37,7 +38,7 @@ public class WingsFeatureRenderer implements AccessoryFe boolean icarus = UItems.PEGASUS_AMULET.isApplicable(entity); if (icarus || pegasus) { - Identifier texture = pegasus ? PEGASUS_WINGS : ICARUS_WINGS; + Identifier texture = pegasus ? PEGASUS_WINGS : entity.world.getDimension().isUltrawarm() ? ICARUS_WINGS_CORRUPTED : ICARUS_WINGS; VertexConsumer consumer = ItemRenderer.getArmorGlintConsumer(renderContext, RenderLayer.getEntityTranslucent(texture), false, false); model.setAngles(entity, context.getModel()); diff --git a/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java b/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java index 081671d9..f0b10839 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/player/PlayerPhysics.java @@ -129,7 +129,7 @@ public class PlayerPhysics extends EntityPhysics implements Tickable, Moti if (type != lastFlightType && (lastFlightType.isArtifical() || type.isArtifical())) { ParticleUtils.spawnParticles(ParticleTypes.CLOUD, entity, 10); - entity.world.playSound(entity.getX(), entity.getY(), entity.getZ(), SoundEvents.BLOCK_BELL_RESONATE, SoundCategory.PLAYERS, 0.1125F, 1.5F, true); + entity.world.playSound(entity.getX(), entity.getY(), entity.getZ(), entity.world.getDimension().isUltrawarm() ? SoundEvents.BLOCK_BELL_USE : SoundEvents.BLOCK_BELL_RESONATE, SoundCategory.PLAYERS, 0.1125F, 1.5F, true); } entity.abilities.allowFlying = type.canFlyCreative(entity); @@ -195,10 +195,18 @@ public class PlayerPhysics extends EntityPhysics implements Tickable, Moti if (ticksInAir % 10 == 0 && !entity.world.isClient) { ItemStack stack = entity.getEquippedStack(EquipmentSlot.CHEST); + int damageInterval = 20; + int minDamage = 1; + float energyConsumed = 2 + (float)getHorizontalMotion(entity) / 10F; if (entity.world.hasRain(entity.getBlockPos())) { energyConsumed *= 3; } + if (entity.world.getDimension().isUltrawarm()) { + energyConsumed *= 4; + damageInterval /= 2; + minDamage *= 3; + } AmuletItem.consumeEnergy(stack, energyConsumed); @@ -206,8 +214,8 @@ public class PlayerPhysics extends EntityPhysics implements Tickable, Moti entity.world.playSoundFromEntity(null, entity, SoundEvents.BLOCK_CHAIN_STEP, SoundCategory.PLAYERS, 0.13F, 0.5F); } - if (entity.world.random.nextInt(20) == 0) { - stack.damage(1 + entity.world.random.nextInt(50), entity, e -> e.sendEquipmentBreakStatus(EquipmentSlot.CHEST)); + if (entity.world.random.nextInt(damageInterval) == 0) { + stack.damage(minDamage + entity.world.random.nextInt(50), entity, e -> e.sendEquipmentBreakStatus(EquipmentSlot.CHEST)); } if (!getFlightType().canFly()) { diff --git a/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java b/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java index def19750..f800f36a 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/AmuletItem.java @@ -61,7 +61,7 @@ public class AmuletItem extends WearableItem { && entity instanceof LivingEntity && ((LivingEntity) entity).getEquippedStack(EquipmentSlot.CHEST) == stack && isApplicable((LivingEntity)entity)) { - ParticleUtils.spawnParticles(ParticleTypes.COMPOSTER, entity, 1); + ParticleUtils.spawnParticles(entity.world.getDimension().isUltrawarm() ? ParticleTypes.SOUL_FIRE_FLAME : ParticleTypes.COMPOSTER, entity, 1); } } diff --git a/src/main/resources/assets/unicopia/textures/models/wings/icarus_corrupted.png b/src/main/resources/assets/unicopia/textures/models/wings/icarus_corrupted.png new file mode 100644 index 0000000000000000000000000000000000000000..3dcc1eec1dfc50b922708baa7bd5be3b47d7a8d2 GIT binary patch literal 1002 zcmVm>JufDIQ;JAMI;gb3d|7`{ze|Eu(>-R^O1Op}*X87pg z%kQ^8UD64}2S5wwpI!jSONUYdRj`&~pC4UPl_1NP z6PbYs#GMDKfRzwte>aQ}YdBj&C?TvM0XzY@=X-iU2m!Q!VQ~1W5EZHt;u<3GxP@v7 zS5N)&>pR#q@aGlS0FQ5g1W&FYzU}9A2Y)<8h|v?&wLi@~$#8&S4=f;5(5WZUgP+p@ ziVO)TXP<;qCBcvIsG4tPh^#JicR25Xc2kYSb%{ic6NY%jhFQ-y_XJ9*c zg6(e*N(39df)M=DVT2SwpMyrA&Xq<-v+W&0s-X+8tDr3*eE@nNxbv9sE|?LhDzNB1 z2s4CxKnGTNgLeUJ23tYfLoC3SAPvw%jE*$jWd&|PCkT588^jecctcYMO?1dikY?z5 zAb{?nUO1Wld@Nu%o-wC` z$rGD65`fJ+pdiRHD@dJ|dh!b_d0%wr)E#}&)vgp(->(-LG0uXu9%lwsnVp=H!&dc* zst0Zq5pS&7$$Zv2l_6xwYA(*adTCB(1p=RZe!>5(Uw^!0xAaEZ4af-bO|PEHdl7=a zkI|_*%2*HonnnM$r15~1ys6cDkap0H5P-08I=e0-EFFC;K;mm8=x)8Llw3`rb!XRg z=DqO$#|h9xNR#(Nhu26D*Y1N@WNs&~*z7dB4YHUU|D*lLz9iCPL1px zk%%K`8Xw(u?Tmi+6@(%X7sfmrgo4RtzW*8uEBJyg%Xi_`%HA)oD%jqFyalp`VA=Uy zHr*PmM}l}^74ihX5<`UuxR+4+5nrBlU4+M96 zIyQU-(!0Wrs$v2HVk1meu$Ya|6!eo1#OW5sMd92_p15YYI^4m>@3xKp&5nz#fA!?R Y-;^Bj