-
Rendering custom armor on Zombies
I justed ended up passing default model to my model and use it as parent. Not very elegant but at least it works. private ModelBiped parent; // new one gets assigned in the getArmorModel() every time. @Override public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { parent.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); shoulder.rotateAngleX = parent.bipedLeftArm.rotateAngleX; shoulder.rotateAngleY = parent.bipedLeftArm.rotateAngleY; shoulder.rotateAngleZ = parent.bipedLeftArm.rotateAngleZ + 0.1f; } @Override public void setModelAttributes(ModelBase model){ parent.setModelAttributes(model); }
-
Rendering custom armor on Zombies
I made a armor item with custom model. It is just a shoulder pad. It works fine for player and even for skeletons. But it looks weird on zombies. I think it is because I extend ModelBiPed for my armor model and zombies use ModelZombie which does extra calculation for arms in setRotationAngels(). My first thought was making another model class that extends ModelZombie and check if the entity is zombie but I don't like hardcoding. So is there any way other than hardcoding to fix this? My model class : public class TestModel extends ModelBiped { private ModelRenderer shoulder; public TestModel(float scale) { super(scale, 0, 64, 64); shoulder = new ModelRenderer(this, 0, 0); shoulder.addBox(-1, -3, -3, 5, 2, 6); shoulder.setRotationPoint(5.0F, 2.0F, 0.0F); } @Override public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { this.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entityIn); shoulder.render(scale); } @Override public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { super.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); shoulder.rotateAngleX = bipedLeftArm.rotateAngleX; shoulder.rotateAngleY = bipedLeftArm.rotateAngleY; shoulder.rotateAngleZ = bipedLeftArm.rotateAngleZ + 0.1f; // rotates a little. } }
-
[1.11.2] Checking if player has edited certain BlockPos?
You could subscribe to WorldTickEvent and check if specific BlockPos has been changed in specific dimension. This would work every time, but probably has more impact on the performance. Maybe check every few seconds?
-
[1.10.2] collision block
It's same size as default glass pane. BlockPane has AABB list and default(thin) one is new AxisAlignedBB(0.4375D, 0.0D, 0.4375D, 0.5625D, 1.0D, 0.5625D) . Min values can be greater than zero.
-
Creating Packets in EntityLiving
Try also overriding Container#updateProgressBar(int, int).
-
[1.11.2] How to add custom lores to item
Sorry, should I edit those parts out?
-
GuiContainer refresh while open.
You can use Container#detectAndSendChanges() to send pakcet and Container#updateProgressBar(int, int)(clinet only) to update data. in detectAndSendChanges(), compare values you want to update and call IContainerListener#sendProgressBarUpdate(Container, int, int) for every listener in Container#listeners. in updateProgressBar(int, int), update values according to ids. Look into the ContainerFurnace and GuiFurnace (container updats values in TE and GUI draws from TE's values)
-
[1.11.2] How to add custom lores to item
You are registering ItemBase dumbBell and not GymDumbbell gymdumbbell . dumbBell is just ItemBase and will not have any properties from GymDumbbell. Also, If you have too many Items your code might begin to look ugly. Move register() and init() to seperate class just for registering and holding Item objects for cleaner code. Normally called ModItems.
-
NBT integer var update wrong
EntityLiving doesn't have readFromNBT or writeToNBT. Use readEntityFromNBT and writeEntityToNBT. Did you just copy pasted from tile entity code?
IPS spam blocked by CleanTalk.