Skip to content

Commit abccda5

Browse files
committed
fix: fixed the second layer of skin overlapping with ice and fires armors
1 parent 698e929 commit abccda5

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

src/main/java/com/github/alexthe666/iceandfire/event/ClientEvents.java

+42-1
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,22 @@
1515
import com.github.alexthe666.iceandfire.entity.props.SirenProperties;
1616
import com.github.alexthe666.iceandfire.entity.util.ICustomMoveController;
1717
import com.github.alexthe666.iceandfire.enums.EnumParticles;
18+
import com.github.alexthe666.iceandfire.item.IafArmorMaterial;
1819
import com.github.alexthe666.iceandfire.message.MessageDragonControl;
1920
import com.github.alexthe666.iceandfire.pathfinding.raycoms.WorldEventContext;
2021
import net.minecraft.client.CameraType;
2122
import net.minecraft.client.Minecraft;
2223
import net.minecraft.client.gui.screens.TitleScreen;
24+
import net.minecraft.client.model.HumanoidModel;
25+
import net.minecraft.client.model.PlayerModel;
2326
import net.minecraft.client.renderer.GameRenderer;
2427
import net.minecraft.resources.ResourceLocation;
2528
import net.minecraft.world.entity.Entity;
29+
import net.minecraft.world.entity.EquipmentSlot;
2630
import net.minecraft.world.entity.LivingEntity;
2731
import net.minecraft.world.entity.player.Player;
32+
import net.minecraft.world.item.ArmorItem;
33+
import net.minecraft.world.item.ItemStack;
2834
import net.minecraftforge.api.distmarker.Dist;
2935
import net.minecraftforge.api.distmarker.OnlyIn;
3036
import net.minecraftforge.client.event.RenderLevelStageEvent;
@@ -38,6 +44,7 @@
3844
import net.minecraftforge.fml.common.Mod;
3945
import org.jetbrains.annotations.NotNull;
4046

47+
import java.util.List;
4148
import java.util.Random;
4249

4350
@OnlyIn(Dist.CLIENT)
@@ -69,7 +76,7 @@ public void onCameraSetup(ViewportEvent.ComputeCameraAngles event) {
6976
int currentView = IceAndFire.PROXY.getDragon3rdPersonView();
7077
float scale = ((EntityDragonBase) player.getVehicle()).getRenderSize() / 3;
7178
if (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK ||
72-
Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_FRONT) {
79+
Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_FRONT) {
7380
if (currentView == 1) {
7481
event.getCamera().move(-event.getCamera().getMaxZoom(scale * 1.2F), 0F, 0);
7582
} else if (currentView == 2) {
@@ -163,6 +170,39 @@ public void onPreRenderLiving(RenderLivingEvent.Pre event) {
163170
if (shouldCancelRender(event.getEntity())) {
164171
event.setCanceled(true);
165172
}
173+
for (EquipmentSlot slot : List.of(EquipmentSlot.HEAD, EquipmentSlot.CHEST, EquipmentSlot.LEGS, EquipmentSlot.FEET)) {
174+
ItemStack stack = event.getEntity().getItemBySlot(slot);
175+
if (stack.getItem() instanceof ArmorItem armorStack && armorStack.getMaterial() instanceof IafArmorMaterial) {
176+
switch (slot) {
177+
case HEAD -> {
178+
if (event.getRenderer().getModel() instanceof HumanoidModel<?> humanoidModel) {
179+
humanoidModel.hat.visible = false;
180+
}
181+
}
182+
case CHEST -> {
183+
if (event.getRenderer().getModel() instanceof PlayerModel<?> playerModel) {
184+
playerModel.jacket.visible = false;
185+
playerModel.leftSleeve.visible = false;
186+
playerModel.rightSleeve.visible = false;
187+
}
188+
}
189+
case LEGS -> {
190+
if (event.getRenderer().getModel() instanceof PlayerModel<?> playerModel) {
191+
playerModel.leftPants.visible = false;
192+
playerModel.rightPants.visible = false;
193+
}
194+
}
195+
case FEET -> {
196+
if (event.getRenderer().getModel() instanceof PlayerModel<?> playerModel) {
197+
playerModel.leftLeg.visible = false;
198+
playerModel.rightLeg.visible = false;
199+
}
200+
}
201+
}
202+
203+
}
204+
}
205+
166206
}
167207

168208
@SubscribeEvent
@@ -189,6 +229,7 @@ public void onGuiOpened(ScreenEvent.Opening event) {
189229

190230
// TODO: add this to client side config
191231
public final boolean AUTO_ADAPT_3RD_PERSON = true;
232+
192233
@SubscribeEvent
193234
public void onEntityMount(EntityMountEvent event) {
194235

0 commit comments

Comments
 (0)