108 lines
4.8 KiB
Java
108 lines
4.8 KiB
Java
package tschipp.carryon.compat.llibrary;
|
|
|
|
import net.ilexiconn.llibrary.client.event.PlayerModelEvent;
|
|
import net.minecraft.client.model.ModelBiped;
|
|
import net.minecraft.client.model.ModelPlayer;
|
|
import net.minecraft.client.model.ModelRenderer;
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
import tschipp.carryon.common.config.CarryOnConfig;
|
|
import tschipp.carryon.common.handler.RegistrationHandler;
|
|
import tschipp.carryon.common.helper.ScriptParseHelper;
|
|
import tschipp.carryon.common.item.ItemEntity;
|
|
import tschipp.carryon.common.item.ItemTile;
|
|
import tschipp.carryon.common.scripting.CarryOnOverride;
|
|
import tschipp.carryon.common.scripting.ScriptChecker;
|
|
|
|
public class LLibraryEvents
|
|
{
|
|
|
|
@SubscribeEvent
|
|
public void setAngles(PlayerModelEvent.SetRotationAngles event)
|
|
{
|
|
if (!CarryOnConfig.settings.renderArms)
|
|
return;
|
|
|
|
EntityPlayer player = event.getEntityPlayer();
|
|
if (player != null)
|
|
{
|
|
ModelBiped modelBiped = event.getModel();
|
|
if (modelBiped instanceof ModelPlayer)
|
|
{
|
|
ItemStack stack = player.getHeldItemMainhand();
|
|
ModelPlayer model = (ModelPlayer) modelBiped;
|
|
|
|
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
|
|
{
|
|
|
|
float rotation = 0;
|
|
|
|
if (player.isRiding() && player.getRidingEntity() instanceof EntityLivingBase)
|
|
rotation = 0;
|
|
else
|
|
rotation = 0;
|
|
|
|
CarryOnOverride overrider = ScriptChecker.getOverride(player);
|
|
if (overrider != null)
|
|
{
|
|
double[] rotLeft = null;
|
|
double[] rotRight = null;
|
|
if (overrider.getRenderRotationLeftArm() != null)
|
|
rotLeft = ScriptParseHelper.getXYZArray(overrider.getRenderRotationLeftArm());
|
|
if (overrider.getRenderRotationRightArm() != null)
|
|
rotRight = ScriptParseHelper.getXYZArray(overrider.getRenderRotationRightArm());
|
|
|
|
boolean renderRight = overrider.isRenderRightArm();
|
|
boolean renderLeft = overrider.isRenderLeftArm();
|
|
|
|
if (renderLeft && rotLeft != null)
|
|
{
|
|
render(model.bipedLeftArm, (float) rotLeft[0], (float) rotLeft[2], rotation);
|
|
render(model.bipedLeftArmwear, (float) rotLeft[0], (float) rotLeft[2], rotation);
|
|
}
|
|
else if (renderLeft)
|
|
{
|
|
render(model.bipedLeftArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
|
|
render(model.bipedLeftArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
|
|
}
|
|
|
|
if (renderRight && rotRight != null)
|
|
{
|
|
render(model.bipedRightArm, (float) rotRight[0], (float) rotRight[2], rotation);
|
|
render(model.bipedRightArmwear, (float) rotRight[0], (float) rotRight[2], rotation);
|
|
}
|
|
else if (renderRight)
|
|
{
|
|
render(model.bipedRightArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
|
|
render(model.bipedRightArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
render(model.bipedRightArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
|
|
render(model.bipedRightArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
|
|
render(model.bipedLeftArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
|
|
render(model.bipedLeftArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private void render(ModelRenderer arm, float x, float z, float rotation)
|
|
{
|
|
arm.rotateAngleX = (float) -x;
|
|
arm.rotateAngleY = (float) -Math.toRadians(rotation);
|
|
arm.rotateAngleZ = (float) z;
|
|
}
|
|
|
|
}
|