Added option to not render arms at all

This commit is contained in:
Tschipp 2017-10-01 19:19:19 +02:00
parent 99709703d8
commit 816b0350a2
6 changed files with 79 additions and 23 deletions

View File

@ -336,7 +336,7 @@ public class RenderEntityEvents
Minecraft.getMinecraft().getRenderManager().setRenderShadow(false);
CarryOnOverride carryOverride = ScriptChecker.inspectEntity(entity);
CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
if (carryOverride != null)
{
double[] translation = ScriptParseHelper.getXYZArray(carryOverride.getRenderTranslation());

View File

@ -259,15 +259,16 @@ public class RenderEvents
this.setLightmapDisabled(true);
if (perspective == 0)
{
event.setCanceled(true);
}
}
GlStateManager.scale(1, 1, 1);
GlStateManager.popMatrix();
if (perspective == 0)
{
event.setCanceled(true);
}
}
else
{
@ -375,7 +376,7 @@ public class RenderEvents
IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileItem, world, player);
CarryOnOverride carryOverride = ScriptChecker.inspectBlock(state, world, player.getPosition(), tag);
CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
if (carryOverride != null)
{
double[] translation = ScriptParseHelper.getXYZArray(carryOverride.getRenderTranslation());
@ -462,7 +463,7 @@ public class RenderEvents
float rotY = model.bipedBody.childModels.get(k).rotateAngleY;
float rotZ = model.bipedBody.childModels.get(k).rotateAngleZ;
if (rotLeft1[0] == rotX || rotLeft1[1] == rotY || rotRight1[2] == rotZ || rotRight1[0] == rotX || rotRight1[1] == rotY || rotRight1[2] == rotZ || rotX == rotLeft1[0] -0.5f || rotX == rotRight1[0] -0.5f)
if (rotLeft1[0] == rotX || rotLeft1[1] == rotY || rotRight1[2] == rotZ || rotRight1[0] == rotX || rotRight1[1] == rotY || rotRight1[2] == rotZ || rotX == rotLeft1[0] - 0.5f || rotX == rotRight1[0] - 0.5f)
{
model.bipedBody.childModels.remove(k);
k = k - 1;
@ -493,7 +494,11 @@ public class RenderEvents
model.bipedRightArm.isHidden = true;
model.bipedLeftArmwear.isHidden = true;
model.bipedRightArmwear.isHidden = true;
this.fakeLeftArm.isHidden = false;
this.fakeLeftArmwear.isHidden = false;
this.fakeRightArm.isHidden = false;
this.fakeRightArmwear.isHidden = false;
Minecraft.getMinecraft().getTextureManager().bindTexture(skinLoc);
if (aplayer.getSkinType().equals("default"))
@ -527,19 +532,40 @@ public class RenderEvents
if (override.getRenderRotationRightArm() != null)
rotRight = ScriptParseHelper.getXYZArray(override.getRenderRotationRightArm());
boolean renderRight = override.isRenderRightArm();
boolean renderLeft = override.isRenderLeftArm();
if (!renderRight)
{
this.fakeRightArm.isHidden = true;
this.fakeRightArmwear.isHidden = true;
model.bipedRightArm.isHidden = false;
model.bipedRightArmwear.isHidden = false;
}
if (!renderLeft)
{
this.fakeLeftArm.isHidden = true;
this.fakeLeftArmwear.isHidden = true;
model.bipedLeftArm.isHidden = false;
model.bipedLeftArmwear.isHidden = false;
}
if (rotLeft != null)
{
if (!player.isSneaking())
{
this.fakeLeftArm.rotateAngleX = (float) rotLeft[0];
this.fakeLeftArmwear.rotateAngleX = (float) rotLeft[0];
this.fakeLeftArmwear.rotateAngleX = (float) rotLeft[0];
}
else
{
this.fakeLeftArm.rotateAngleX = (float) rotLeft[0] - 0.5f;
this.fakeLeftArmwear.rotateAngleX = (float) rotLeft[0] - 0.5f;
this.fakeLeftArmwear.rotateAngleX = (float) rotLeft[0] - 0.5f;
}
this.fakeLeftArmwear.rotateAngleY = (float) rotLeft[1];
this.fakeLeftArmwear.rotateAngleZ = (float) rotLeft[2];
this.fakeLeftArm.rotateAngleY = (float) rotLeft[1];
@ -583,14 +609,14 @@ public class RenderEvents
if (!player.isSneaking())
{
this.fakeRightArm.rotateAngleX = (float) rotRight[0];
this.fakeRightArmwear.rotateAngleX = (float) rotRight[0];
this.fakeRightArmwear.rotateAngleX = (float) rotRight[0];
}
else
{
this.fakeRightArm.rotateAngleX = (float) rotRight[0] - 0.5f;
this.fakeRightArmwear.rotateAngleX = (float) rotRight[0] - 0.5f;
this.fakeRightArmwear.rotateAngleX = (float) rotRight[0] - 0.5f;
}
this.fakeRightArmwear.rotateAngleY = (float) rotRight[1];
this.fakeRightArmwear.rotateAngleZ = (float) rotRight[2];
this.fakeRightArm.rotateAngleY = (float) rotRight[1];
@ -647,7 +673,7 @@ public class RenderEvents
this.fakeLeftArmwear.rotateAngleX = -1.4001F;
this.fakeRightArmwear.rotateAngleX = -1.4001F;
}
this.fakeRightArm.rotateAngleY = 0f;
this.fakeLeftArm.rotateAngleY = 0f;
this.fakeLeftArmwear.rotateAngleY = 0f;
@ -675,7 +701,7 @@ public class RenderEvents
this.fakeLeftArmwear.rotateAngleY = 0.15f;
this.fakeRightArmwear.rotateAngleY = -0.15f;
}
this.fakeRightArm.rotateAngleZ = 0F;
this.fakeLeftArm.rotateAngleZ = 0F;
this.fakeLeftArmwear.rotateAngleZ = 0F;
@ -715,7 +741,7 @@ public class RenderEvents
float rotY = model.bipedBody.childModels.get(k).rotateAngleY;
float rotZ = model.bipedBody.childModels.get(k).rotateAngleZ;
if (rotLeft1[0] == rotX || rotLeft1[1] == rotY || rotRight1[2] == rotZ || rotRight1[0] == rotX || rotRight1[1] == rotY || rotRight1[2] == rotZ || rotX == rotLeft1[0] -0.5f || rotX == rotRight1[0] -0.5f)
if (rotLeft1[0] == rotX || rotLeft1[1] == rotY || rotRight1[2] == rotZ || rotRight1[0] == rotX || rotRight1[1] == rotY || rotRight1[2] == rotZ || rotX == rotLeft1[0] - 0.5f || rotX == rotRight1[0] - 0.5f)
{
model.bipedBody.childModels.remove(k);
k = k - 1;

View File

@ -26,19 +26,19 @@ public class ScriptParseHelper
{
if (cond.contains("<="))
{
return number >= Double.parseDouble(cond.replace("<=", ""));
return number <= Double.parseDouble(cond.replace("<=", ""));
}
if (cond.contains(">="))
{
return number <= Double.parseDouble(cond.replace(">=", ""));
return number >= Double.parseDouble(cond.replace(">=", ""));
}
if (cond.contains("<"))
{
return number > Double.parseDouble(cond.replace("<", ""));
return number < Double.parseDouble(cond.replace("<", ""));
}
if (cond.contains(">"))
{
return number < Double.parseDouble(cond.replace(">", ""));
return number > Double.parseDouble(cond.replace(">", ""));
}
if (cond.contains("="))
{

View File

@ -40,6 +40,9 @@ public class CarryOnOverride
private boolean isBlock;
private boolean isEntity;
private boolean renderLeftArm = true;
private boolean renderRightArm = true;
public String getRenderRotationLeftArm()
{
@ -61,6 +64,26 @@ public class CarryOnOverride
this.renderRotationRightArm = renderRotationRightArm;
}
public boolean isRenderLeftArm()
{
return renderLeftArm;
}
public void setRenderLeftArm(boolean renderLeftArm)
{
this.renderLeftArm = renderLeftArm;
}
public boolean isRenderRightArm()
{
return renderRightArm;
}
public void setRenderRightArm(boolean renderRightArm)
{
this.renderRightArm = renderRightArm;
}
@Override
public int hashCode()
{
@ -74,6 +97,8 @@ public class CarryOnOverride
result = prime * result + ((conditionXp == null) ? 0 : conditionXp.hashCode());
result = prime * result + (isBlock ? 1231 : 1237);
result = prime * result + (isEntity ? 1231 : 1237);
result = prime * result + (renderLeftArm ? 1231 : 1237);
result = prime * result + (renderRightArm ? 1231 : 1237);
result = prime * result + renderMeta;
result = prime * result + ((renderNBT == null) ? 0 : renderNBT.hashCode());
result = prime * result + ((renderNameBlock == null) ? 0 : renderNameBlock.hashCode());

View File

@ -72,7 +72,7 @@ public class ScriptChecker
public static boolean matchesAll(CarryOnOverride override, String name, float height, float width, float health, NBTTagCompound tag)
{
boolean matchname = name == null ? true : name.equals(override.getTypeNameEntity());
boolean matchname = override.getTypeNameEntity() == null ? true : name.equals(override.getTypeNameEntity());
boolean matchheight = ScriptParseHelper.matches(height, override.getTypeHeight());
boolean matchwidth = ScriptParseHelper.matches(width, override.getTypeWidth());
boolean matchhealth = ScriptParseHelper.matches(health, override.getTypeHealth());

View File

@ -147,6 +147,8 @@ public class ScriptReader
JsonElement scale = render.get("scale");
JsonElement rotationLeftArm = render.get("rotation_left_arm");
JsonElement rotationRightArm = render.get("rotation_right_arm");
JsonElement renderLeftArm = render.get("render_left_arm");
JsonElement renderRightArm = render.get("render_right_arm");
if(name_block != null)
override.setRenderNameBlock(name_block.getAsString());
@ -166,7 +168,10 @@ public class ScriptReader
override.setRenderRotationLeftArm(rotationLeftArm.getAsString());
if(rotationRightArm != null)
override.setRenderRotationRightArm(rotationRightArm.getAsString());
if(renderLeftArm != null)
override.setRenderLeftArm(renderLeftArm.getAsBoolean());
if(renderRightArm != null)
override.setRenderRightArm(renderRightArm.getAsBoolean());
}
OVERRIDES.put(override.hashCode(), override);