Posted July 13, 20187 yr Alright guys one more problem don't get tired of me just yet. I have a problem with an item and I am wanting to spawn a Mob or Entity from said Item, but it ain't quite working. I used the Egg item's class as a base but I am sure I am missing a detail or two... The code as presented- package mod.teamfusion.fuziongearz.items; import mod.teamfusion.fuziongearz.entities.models.EntityAirPaladin; import mod.teamfusion.fuziongearz.entities.models.EntityEarthPaladin; import mod.teamfusion.fuziongearz.entities.models.EntityFirePaladin; import mod.teamfusion.fuziongearz.entities.models.EntityWaterPaladin; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityEgg; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; public class ItemElementsCall extends BasicItem { public ItemElementsCall() { super("element_caller"); } @Override public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack itemstack = playerIn.getHeldItem(handIn); if (!worldIn.isRemote) { EntityEarthPaladin entity = new EntityEarthPaladin(worldIn); worldIn.spawnEntity(entity); } return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);} } Edited July 13, 20187 yr by witherlord00
July 13, 20187 yr 6 minutes ago, witherlord00 said: The code as presented You never set the entities position. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
July 13, 20187 yr Author 1 minute ago, Animefan8888 said: You never set the entities position. Ok so that is a thing...
July 13, 20187 yr Author What is the class for an Armor Stand maybe I can pull an entity position from it?
July 13, 20187 yr 4 minutes ago, witherlord00 said: What is the class for an Armor Stand maybe I can pull an entity position from it? EntityArmorStand, but you are not gonna be able to pull an entity position from it. Just call setPostion on your instance of EntityEarthPaladin and pass in the appropriate x, y, z postion. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
July 13, 20187 yr Author This still not be working package mod.teamfusion.fuziongearz.items; import mod.teamfusion.fuziongearz.entities.models.EntityAirPaladin; import mod.teamfusion.fuziongearz.entities.models.EntityEarthPaladin; import mod.teamfusion.fuziongearz.entities.models.EntityFirePaladin; import mod.teamfusion.fuziongearz.entities.models.EntityWaterPaladin; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityEgg; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; public class ItemElementsCall extends BasicItem { public ItemElementsCall() { super("element_caller"); } public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn, int x, int y, int z) { ItemStack itemstack = playerIn.getHeldItem(handIn); if (!worldIn.isRemote) { EntityEarthPaladin entity = new EntityEarthPaladin (worldIn); worldIn.spawnEntity(entity); entity.setPosition(x, y, z); } return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);} } I think it's missing something.
July 13, 20187 yr 3 minutes ago, witherlord00 said: I think it's missing something. Do you know Java? VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
July 13, 20187 yr Author 9 minutes ago, Animefan8888 said: Do you know Java? Basic Java Edited July 13, 20187 yr by witherlord00
July 13, 20187 yr 1 hour ago, witherlord00 said: Basic Java Then you should know what @Override means and why you should have it on your methods. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
July 13, 20187 yr Author 7 minutes ago, Mystic4pheonix said: have you tried'ed looking at an entity spawn egg and see how Mojang do it? yea ItemMonsterPlacer
July 13, 20187 yr only use as reference code because I'm importing the code directly will kill your game trust me i learned the hard way Edited July 13, 20187 yr by diesieben07 removed copyrighted code
July 13, 20187 yr I don't normally post code not my own. this was the first time so please not to be rude but please get off my back
July 13, 20187 yr Author Ok so fixed the @Override method but i'm still not able to spawn the mob. I am going to try something later today as I am tired right now.
July 13, 20187 yr 2 minutes ago, witherlord00 said: Ok so fixed the @Override method but i'm still not able to spawn the mob. I am going to try something later today as I am tired right now. do you have discord if so join here https://discord.gg/gSYB55H and we can talk see if can fix it
July 13, 20187 yr Author 2 minutes ago, diesieben07 said: Saying "not to be rude" does not make your post polite. No, I will not just "get off your back" if you post copyrighted code on this forum. Please do not do it again and try to understand why it is a bad thing. Post updated code. package mod.teamfusion.fuziongearz.items; import mod.teamfusion.fuziongearz.entities.models.EntityAirPaladin; import mod.teamfusion.fuziongearz.entities.models.EntityEarthPaladin; import mod.teamfusion.fuziongearz.entities.models.EntityFirePaladin; import mod.teamfusion.fuziongearz.entities.models.EntityWaterPaladin; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityEgg; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; public class ItemElementsCall extends BasicItem { public ItemElementsCall() { super("element_caller"); } @Override public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn, int x, int y, int z) { ItemStack itemstack = playerIn.getHeldItem(handIn); if (!worldIn.isRemote) { EntityEarthPaladin entity = new EntityEarthPaladin (worldIn); entity.setPosition(x, y, z); worldIn.spawnEntity(entity); } return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);} }
July 13, 20187 yr Author 2 minutes ago, Mystic4pheonix said: do you have discord if so join here https://discord.gg/gSYB55H and we can talk see if can fix it Appreciate that. If I don't forget later or figure it out then yeah we could do that.
July 13, 20187 yr wither i just thought of something have you actually registered the entity into the game
July 13, 20187 yr @witherlord00 You did not fix the override error. Item#onItemRightClick doesn't have x, y, z parameters. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
July 13, 20187 yr Author package mod.teamfusion.fuziongearz.entities.models; import javax.annotation.Nullable; import mod.teamfusion.fuziongearz.init.FusionBlocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackMelee; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAIMoveThroughVillage; import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; import net.minecraft.entity.ai.EntityAIMoveTowardsTarget; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWanderAvoidWater; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.ai.EntityAIZombieAttack; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.monster.EntityGuardian; import net.minecraft.entity.monster.EntityIronGolem; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.monster.EntityPigZombie; import net.minecraft.entity.monster.EntitySnowman; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.SoundEvents; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.BossInfo; import net.minecraft.world.BossInfoServer; import net.minecraft.world.World; import net.minecraft.world.storage.loot.LootTableList; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class EntityEarthPaladin extends EntityMob { public EntityEarthPaladin(World p_i1738_1_) { super(p_i1738_1_); //width //height this.setSize(0.9F, 1.9F); } @Override protected void initEntityAI() { this.tasks.addTask(6, new EntityAIWanderAvoidWater(this, 1.0D)); this.tasks.addTask(2, new EntityAIAttackMelee(this, 1.0D, false)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(2, new EntityAIMoveTowardsTarget(this, 0.9D, 32.0F)); this.applyEntityAI();} public static final ResourceLocation LOOT_TABLE = new ResourceLocation("fusiongears" + ":" + "earth_paladin"); private void applyEntityAI(){ this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, true)); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(200.0D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.25D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D); this.getEntityAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(2.0D); } public boolean attackEntityAsMob(Entity entityIn) { this.world.setEntityState(this, (byte)4); boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), (float)(7 + this.rand.nextInt(15))); this.playSound(SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP, 1.0F, 1.0F); return flag; } protected SoundEvent getHurtSound() { return SoundEvents.ITEM_SHIELD_BLOCK; } protected SoundEvent getDeathSound() { return SoundEvents.ITEM_SHIELD_BREAK; } protected void playStepSound(BlockPos pos, Block blockIn) { this.playSound(SoundEvents.ENTITY_IRONGOLEM_STEP, 1.0F, 1.0F); } @Override public boolean attackEntityFrom(DamageSource source, float damage) { if (source instanceof EntityDamageSourceIndirect) return false; return super.attackEntityFrom(source, damage); } @Override public int getTotalArmorValue() { return 10;} @Override protected ResourceLocation getLootTable() { return LOOT_TABLE; } } EntityEarthPaladin Class^^^ package mod.teamfusion.fuziongearz.entities.models; import mod.teamfusion.fuziongearz.Main; import net.minecraft.entity.EnumCreatureType; import net.minecraft.init.Biomes; import net.minecraft.util.ResourceLocation; import net.minecraft.world.storage.loot.LootTableList; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.registry.EntityRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class ModEntities { public static void init() { int id = 1;//primary secondary EntityRegistry.registerModEntity(new ResourceLocation("fusiongears" + ":" + "earth_paladin"),EntityEarthPaladin.class, "earth_paladin", id++, Main.instance, 64, 3, true, 0x3CFF00, 0x33CC00);//real egg colors- 0x3CFF00 by 0x33CC00 EntityRegistry.registerModEntity(new ResourceLocation("fusiongears" + ":" + "fire_paladin"),EntityFirePaladin.class, "fire_paladin", id++, Main.instance, 64, 3, true, 0xEF7C38, 0xBC6E2F);//real egg colors- 0xEF7C38, 0xBC6E2F EntityRegistry.registerModEntity(new ResourceLocation("fusiongears" + ":" + "water_paladin"),EntityWaterPaladin.class, "water_paladin", id++, Main.instance, 64, 3, true, 0x388DEF, 0x2F65BC);//real egg colors-0x388DEF, 0x2F65BC EntityRegistry.registerModEntity(new ResourceLocation("fusiongears" + ":" + "air_paladin"),EntityAirPaladin.class, "air_paladin", id++, Main.instance, 64, 3, true, 0xA4A4A4, 0x838383);//real egg colors- 0xA4A4A4, 0x838383 } @SideOnly(Side.CLIENT) public static void initModels() { RenderingRegistry.registerEntityRenderingHandler(EntityEarthPaladin.class, RenderEarthPaladin.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityFirePaladin.class, RenderFirePaladin.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityWaterPaladin.class, RenderWaterPaladin.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityAirPaladin.class, RenderAirPaladin.FACTORY); } } ModEntities(registry class)
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.