diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/WorldRenderDelegate.java b/src/main/java/com/minelittlepony/unicopia/client/render/WorldRenderDelegate.java index 90a9fd4d..70a7c975 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/WorldRenderDelegate.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/WorldRenderDelegate.java @@ -55,6 +55,11 @@ public class WorldRenderDelegate { RenderSystem.setShaderFogEnd(RenderSystem.getShaderFogEnd() + 190); } } + if (camera.getSubmersionType() == CameraSubmersionType.NONE) { + if (EquinePredicates.PLAYER_SEAPONY.test(MinecraftClient.getInstance().player)) { + RenderSystem.setShaderFogStart(-130); + } + } } public boolean beforeEntityRender(Entity entity, diff --git a/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java b/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java index 8dfef123..538dd8d6 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/player/Pony.java @@ -57,6 +57,7 @@ import net.minecraft.registry.tag.DamageTypeTags; import net.minecraft.registry.tag.FluidTags; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; @@ -464,6 +465,10 @@ public class Pony extends Living implements Copyable, Update entity.setAir(entity.getAir() - 1); } + if (entity.age % 60 == 0) { + entity.playSound(SoundEvents.ENTITY_TURTLE_AMBIENT_LAND, 1, 1); + } + if (entity.getAir() == -20) { entity.setAir(0); entity.damage(entity.getDamageSources().dryOut(), 2); @@ -872,10 +877,13 @@ public class Pony extends Living implements Copyable, Update && oldPlayer.respawnRace.isUnset()) || oldPlayer.getSpecies().isUnset(); + Race oldSuppressedRace = oldPlayer.getSuppressedRace(); + if (alive) { oldPlayer.getSpellSlot().stream(true).forEach(getSpellSlot()::put); } else { if (forcedSwap) { + oldSuppressedRace = Race.UNSET; Channel.SERVER_SELECT_TRIBE.sendToPlayer(new MsgTribeSelect(Race.allPermitted(entity), "gui.unicopia.tribe_selection.respawn"), (ServerPlayerEntity)entity); } else { oldPlayer.getSpellSlot().stream(true).filter(SpellPredicate.IS_PLACED).forEach(getSpellSlot()::put); @@ -894,6 +902,7 @@ public class Pony extends Living implements Copyable, Update } setSpecies(oldPlayer.respawnRace != Race.UNSET && !alive ? oldPlayer.respawnRace : oldPlayer.getSpecies()); + setSuppressedRace(oldSuppressedRace); getDiscoveries().copyFrom(oldPlayer.getDiscoveries(), alive); getPhysics().copyFrom(oldPlayer.getPhysics(), alive); if (!forcedSwap) {