Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

aviad1

Members
  • Joined

  • Last visited

Everything posted by aviad1

  1. Hi, I've made a pheonix entity for my mod. For some reson, it visually falls into the ground (infinitlly). I know it happends only visually because I can still see the pheonix's shaddow on the ground. Can someone tell me how to fix it? My code: public class ModEntities { public static final int idWizard = 120; public static final int idPheonix = 121; public static void registerEntities() { registerEntity("wizard", EntityWizard.class, idWizard, 50, 255, 16776960); registerEntity("pheonix", EntityPheonix.class, idPheonix, 50, 10254636, 15436288); } public static void registerEntity(String name, Class<? extends Entity> entity, int id, int range, int eggColor1, int eggColor2) { EntityRegistry.registerModEntity(new ResourceLocation(myfirstmod.MODID + ":" + name), entity, name, id, myfirstmod.instance, range, 1, true, eggColor1, eggColor2); } } public class ModelPheonix extends ModelBase { public ModelRenderer body; public ModelRenderer wingLeft; public ModelRenderer tail; public ModelRenderer head1; public ModelRenderer legRight; public ModelRenderer wingRight; public ModelRenderer legLeft; public ModelRenderer head2; public ModelRenderer beak1; public ModelRenderer beak2; private ModelPheonix.State state = ModelPheonix.State.STANDING; public ModelPheonix() { this.textureWidth = 32; this.textureHeight = 32; this.wingRight = new ModelRenderer(this, 19, 8); this.wingRight.setRotationPoint(-1.5F, 16.94F, -2.76F); this.wingRight.addBox(-0.5F, 0.0F, -1.5F, 1, 5, 3, 0.0F); this.setRotateAngle(wingRight, -0.6981317007977318F, -3.141592653589793F, 0.08726646259971647F); this.tail = new ModelRenderer(this, 22, 1); this.tail.setRotationPoint(0.0F, 21.07F, 1.16F); this.tail.addBox(-1.5F, -1.0F, -1.0F, 3, 4, 1, 0.0F); this.setRotateAngle(tail, 1.015083492959902F, 0.0F, 0.0F); this.legRight = new ModelRenderer(this, 14, 18); this.legRight.setRotationPoint(-1.0F, 22.0F, -1.05F); this.legRight.addBox(-0.5F, 0.0F, -0.5F, 1, 2, 1, 0.0F); this.setRotateAngle(legRight, 0.6682865705886288F, 0.0F, 0.0F); this.head2 = new ModelRenderer(this, 10, 0); this.head2.setRotationPoint(0.0F, -2.0F, -1.0F); this.head2.addBox(-1.0F, -0.5F, -2.0F, 2, 1, 4, 0.0F); this.body = new ModelRenderer(this, 2, 8); this.body.setRotationPoint(0.0F, 16.5F, -3.0F); this.body.addBox(-1.5F, 0.0F, -1.5F, 3, 6, 3, 0.0F); this.setRotateAngle(body, 0.49375364538919575F, 0.0F, 0.0F); this.legLeft = new ModelRenderer(this, 14, 18); this.legLeft.setRotationPoint(1.0F, 22.0F, -1.05F); this.legLeft.addBox(-0.5F, 0.0F, -0.5F, 1, 2, 1, 0.0F); this.setRotateAngle(legLeft, 0.6682865705886288F, 0.0F, 0.0F); this.beak1 = new ModelRenderer(this, 11, 7); this.beak1.setRotationPoint(0.0F, -0.5F, -1.5F); this.beak1.addBox(-0.5F, -1.0F, -0.5F, 1, 2, 1, 0.0F); this.wingLeft = new ModelRenderer(this, 19, 8); this.wingLeft.setRotationPoint(1.5F, 16.94F, -2.76F); this.wingLeft.addBox(-0.5F, 0.0F, -1.5F, 1, 5, 3, 0.0F); this.setRotateAngle(wingLeft, -0.6981317007977318F, -3.141592653589793F, -0.08726646259971647F); this.beak2 = new ModelRenderer(this, 16, 7); this.beak2.setRotationPoint(0.0F, -1.75F, -2.45F); this.beak2.addBox(-0.5F, 0.0F, -0.5F, 1, 2, 1, 0.0F); this.head1 = new ModelRenderer(this, 2, 2); this.head1.setRotationPoint(0.0F, 15.69F, -2.76F); this.head1.addBox(-1.0F, -1.5F, -1.0F, 2, 3, 2, 0.0F); this.head1.addChild(this.head2); this.head1.addChild(this.beak1); this.head1.addChild(this.beak2); } @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { this.wingRight.render(f5); this.tail.render(f5); this.legRight.render(f5); this.body.render(f5); this.legLeft.render(f5); this.wingLeft.render(f5); this.head1.render(f5); } /** * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.rotateAngleX = x; modelRenderer.rotateAngleY = y; modelRenderer.rotateAngleZ = z; } @Override public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { float f = ageInTicks * 0.3F; this.head1.rotateAngleX = headPitch * 0.017453292F; this.head1.rotateAngleY = netHeadYaw * 0.017453292F; this.head1.rotateAngleZ = 0.0F; this.head1.rotationPointX = 0.0F; this.body.rotationPointX = 0.0F; this.tail.rotationPointX = 0.0F; this.wingRight.rotationPointX = -1.5F; this.wingLeft.rotationPointX = 1.5F; if (this.state != ModelPheonix.State.FLYING) { if (this.state == ModelPheonix.State.SITTING) { return; } this.legLeft.rotateAngleX += MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; this.legRight.rotateAngleX += MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; } this.head1.rotationPointY = 15.69F + f; this.tail.rotateAngleX = 1.015F + MathHelper.cos(limbSwing * 0.6662F) * 0.3F * limbSwingAmount; this.tail.rotationPointY = 21.07F + f; this.body.rotationPointY = 16.5F + f; this.wingLeft.rotateAngleZ = -0.0873F - ageInTicks; this.wingLeft.rotationPointY = 16.94F + f; this.wingRight.rotateAngleZ = 0.0873F + ageInTicks; this.wingRight.rotationPointY = 16.94F + f; this.legLeft.rotationPointY = 22.0F + f; this.legRight.rotationPointY = 22.0F + f; } @Override public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTickTime) { this.body.rotateAngleX = 0.4937F; this.wingLeft.rotateAngleX = -((float)Math.PI * 2F / 9F); this.wingLeft.rotateAngleY = -(float)Math.PI; this.wingRight.rotateAngleX = -((float)Math.PI * 2F / 9F); this.wingRight.rotateAngleY = -(float)Math.PI; this.legLeft.rotateAngleX = -0.0299F; this.legRight.rotateAngleX = -0.0299F; this.legLeft.rotationPointY = 22.0F; this.legRight.rotationPointY = 22.0F; if (entitylivingbaseIn instanceof EntityPheonix) { EntityPheonix entitypheonix = (EntityPheonix)entitylivingbaseIn; if (entitypheonix.isSitting()) { float f = 1.9F; this.head1.rotationPointY = 17.59F; this.tail.rotateAngleX = 1.5388988F; this.tail.rotationPointY = 22.97F; this.body.rotationPointY = 18.4F; this.wingLeft.rotateAngleZ = -0.0873F; this.wingLeft.rotationPointY = 18.84F; this.wingRight.rotateAngleZ = 0.0873F; this.wingRight.rotationPointY = 18.84F; ++this.legLeft.rotationPointY; ++this.legRight.rotationPointY; ++this.legLeft.rotateAngleX; ++this.legRight.rotateAngleX; this.state = ModelPheonix.State.SITTING; } else if (entitypheonix.isFlying()) { this.legLeft.rotateAngleX += ((float)Math.PI * 2F / 9F); this.legRight.rotateAngleX += ((float)Math.PI * 2F / 9F); this.state = ModelPheonix.State.FLYING; } else { this.state = ModelPheonix.State.STANDING; } this.legLeft.rotateAngleZ = 0.0F; this.legRight.rotateAngleZ = 0.0F; } } @SideOnly(Side.CLIENT) static enum State { FLYING, STANDING, SITTING; } } public class EntityPheonix extends EntityShoulderRiding implements EntityFlying { private static final Item DEADLY_ITEM = Items.WATER_BUCKET; private static final Set<Item> TAME_ITEMS = Sets.newHashSet(Items.COOKIE); public EntityPheonix(World worldIn) { super(worldIn); this.setSize(0.7F, 1.1F); this.moveHelper = new EntityFlyHelper(this); } @Override public EntityAgeable createChild(EntityAgeable ageable) { return new EntityPheonix(world); } @Override public float getEyeHeight() { return this.height * 0.6F; } @Override public ITextComponent getDisplayName() { return new TextComponentTranslation("entity.pheonix.name"); } @Override protected void initEntityAI() { this.aiSit = new EntityAISit(this); this.tasks.addTask(0, new EntityAIPanic(this, 1.25D)); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(1, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(2, this.aiSit); this.tasks.addTask(2, new EntityAIFollowOwnerFlying(this, 1.0D, 5.0F, 1.0F)); this.tasks.addTask(2, new EntityAIWanderAvoidWaterFlying(this, 1.0D)); this.tasks.addTask(3, new EntityAILandOnOwnersShoulder(this)); this.tasks.addTask(3, new EntityAIFollow(this, 1.0D, 3.0F, 7.0F)); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getAttributeMap().registerAttribute(SharedMonsterAttributes.FLYING_SPEED); this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(9.0D); this.getEntityAttribute(SharedMonsterAttributes.FLYING_SPEED).setBaseValue(0.45D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.24D); } @Override public void onLivingUpdate() { super.onLivingUpdate(); } @Override protected PathNavigate createNavigator(World worldIn) { PathNavigateFlying pathnavigateflying = new PathNavigateFlying(this, worldIn); pathnavigateflying.setCanOpenDoors(false); pathnavigateflying.setCanFloat(true); pathnavigateflying.setCanEnterDoors(true); return pathnavigateflying; } @Override public boolean processInteract(EntityPlayer player, EnumHand hand) { ItemStack itemstack = player.getHeldItem(hand); if (!this.isTamed() && TAME_ITEMS.contains(itemstack.getItem())) { if (!player.capabilities.isCreativeMode) { itemstack.shrink(1); } if (!this.isSilent()) { this.world.playSound((EntityPlayer)null, this.posX, this.posY, this.posZ, SoundEvents.ENTITY_PARROT_EAT, this.getSoundCategory(), 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); } if (!this.world.isRemote) { if (this.rand.nextInt(10) == 0 && !net.minecraftforge.event.ForgeEventFactory.onAnimalTame(this, player)) { this.setTamedBy(player); this.playTameEffect(true); this.world.setEntityState(this, (byte)7); } else { this.playTameEffect(false); this.world.setEntityState(this, (byte)6); } } return true; } else if (itemstack.getItem() == DEADLY_ITEM) { if (!player.capabilities.isCreativeMode) { itemstack.shrink(1); } this.addPotionEffect(new PotionEffect(MobEffects.POISON, 900)); if (player.isCreative() || !this.getIsInvulnerable()) { this.attackEntityFrom(DamageSource.causePlayerDamage(player), Float.MAX_VALUE); } return true; } else { if (!this.world.isRemote && !this.isFlying() && this.isTamed() && this.isOwner(player)) { this.aiSit.setSitting(!this.isSitting()); } return super.processInteract(player, hand); } } @Override public boolean isBreedingItem(ItemStack stack) { return TAME_ITEMS.contains(stack.getItem()); } @Override public boolean getCanSpawnHere() { int i = MathHelper.floor(this.posX); int j = MathHelper.floor(this.getEntityBoundingBox().minY); int k = MathHelper.floor(this.posZ); BlockPos blockpos = new BlockPos(i, j, k); Block block = this.world.getBlockState(blockpos.down()).getBlock(); return block instanceof BlockLeaves || block == Blocks.GRASS || block instanceof BlockLog || block == Blocks.AIR && this.world.getLight(blockpos) > 8 && super.getCanSpawnHere(); } @Override protected boolean makeFlySound() { return true; } @Override public void fall(float distance, float damageMultiplier) { } @Override protected void updateFallState(double y, boolean onGroundIn, IBlockState state, BlockPos pos) { } @Override public boolean canBePushed() { return true; } @Override protected void collideWithEntity(Entity entityIn) { if (!(entityIn instanceof EntityPlayer)) { super.collideWithEntity(entityIn); } } public boolean isFlying() { return false; } } public class RenderPheonix extends RenderLiving<EntityPheonix> { public static final ResourceLocation TEXTURES = new ResourceLocation(myfirstmod.MODID + ":textures/entity/pheonix.png"); public RenderPheonix(RenderManager manager) { super(manager, new ModelPheonix(), 0.5F); } @Override protected ResourceLocation getEntityTexture(EntityPheonix entity) { return TEXTURES; } @Override protected void applyRotations(EntityPheonix entityLiving, float p_77043_2_, float rotationYaw, float partialTicks) { super.applyRotations(entityLiving, p_77043_2_, rotationYaw, partialTicks); } } public class RenderHandler { public static void registerEntityRenders() { RenderingRegistry.registerEntityRenderingHandler(EntityWizard.class, new IRenderFactory<EntityWizard>(){ @Override public Render<? super EntityWizard> createRenderFor(RenderManager manager) { return new RenderWizard(manager); } }); RenderingRegistry.registerEntityRenderingHandler(EntityPheonix.class, new IRenderFactory<EntityPheonix>() { @Override public Render<? super EntityPheonix> createRenderFor(RenderManager manager) { return new RenderPheonix(manager); } }); } }
  2. Ive figured it out. Thanks for all who tried to help
  3. Can you send me the code I supposed to write in order to make this work?
  4. Can you send me the code of how it's supposed to be?
  5. Here us my code. What am I doing wrong? @ObjectHolder(myfirstmod.MODID) public class ModItems { public static Item redingotItem = new itemRedIngot("redingot_item"); public static void init() { redingotItem.setRegistryName(new ResourceLocation(myfirstmod.MODID,"redingot_item")); } @Mod.EventBusSubscriber(modid = myfirstmod.MODID) public static class RegistrationHandler { @SubscribeEvent public void registerItems(RegistryEvent.Register<Item> event){ event.getRegistry().registerAll(redingotItem); } } }

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.