Jump to content

Recommended Posts

Posted

Have you looked at how vanilla animals (e.g. pig or sheep) do it?

 

Mob entities (which include animals) have goals, which are registered and run by the entity's GoalSelector object.  Every mob entity has a goal selector, which is public, and the goal selector has a getRunningGoals() method to get all of the currently-active goals.  Take a look at e.g. PigEntity and find the obviously-named goal which controls panic behaviour. That should be all the info you need.

 

It might actually be simpler just to check that the animal has a non-null getRevengeTarget()... depends on how much control you want over the process.  An animal can have a revenge target but not have a running panic goal if it can't find somewhere to flee to, for example.

  • Thanks 1
Posted (edited)
15 hours ago, DragonITA said:

@desht, wow, thanks a lot! I simply cant see the Vanilla code, but thank for your help!

If you can't view vanilla code from your IDE, get that fixed ASAP. It's absolutely critical to be able to see how vanilla and Forge code does stuff, not to mention being able to set debugging breakpoints. 

Edited by desht
  • Like 1
Posted
4 hours ago, DragonITA said:

What is ASAP?

 

As Soon As Possible

  • Like 1

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

  • 4 weeks later...
Posted (edited)
On 2/19/2020 at 6:33 PM, desht said:

If you can't view vanilla code from your IDE, get that fixed ASAP. It's absolutely critical to be able to see how vanilla and Forge code does stuff, not to mention being able to set debugging breakpoints. 

So, with the school i not have much time, but i tried to do what i can. I searched a lot about streams and optional, and this is what i actually have:

 

https://github.com/DragonGamerDevelopers/NewFantasyMod/blob/1.15.2/src/main/java/mod/dragonita/fantasymod/entities/UnicornEntity.java#L45

 

Now it say me that the optional was empty, i really not know why, as my entity walk, look me, if i attack it it flee (The panic), etc…. So i need help. I have done all what i have can do in the Java basic side, but i think that this was a problem more related to modding as Java basic. I have see the Vanilla of getRunningGoals, so normally it should work, so why it don‘t work?

Edited by DragonITA

New in Modding? == Still learning!

Posted
12 hours ago, loordgek said:

return entity.goalSelector.getRunningGoals().anyMatch(prioritizedGoal -> prioritizedGoal.getGoal().getClass() == TargetGoal);

 

@loordgek, thanks for replying! I not am a expert in Java, but it always return false. It not should be the case. I am trying to make a animation if the entity was attacked and the Panic Goal was activated, i kill all my entity (i not have add a regular spawn) and attack the entity, but the Logger always say me that it was false, but i attacked the entity, so it can‘t be was false (as it run in a random position, so it was false), so i not understand why it was always false.

New in Modding? == Still learning!

Posted

I think it's a Mojang problem, or am I using it wrong? Because otherwise it's impossible to get a goal, and the function «getRunningGoals()» is also useless

On 2/19/2020 at 5:56 PM, desht said:

It might actually be simpler just to check that the animal has a non-null getRevengeTarget()... depends on how much control you want over the process.  An animal can have a revenge target but not have a running panic goal if it can't find somewhere to flee to, for example.

@desht, my entity extends Agreableentity, like a pig, and i don‘t think that a passive entity has a revengetarget.

New in Modding? == Still learning!

Posted (edited)

@loordgek, so i need to use @OnlyIn(Dist.SERVER)? So thanks, i will try! 

23 hours ago, loordgek said:

you need to send a packet

What is a packet? Ok, now i am lost.

Edited by DragonITA

New in Modding? == Still learning!

Posted
32 minutes ago, DragonITA said:

How do you know this?

Not sure if this is 100% correct, but unless something is graphics, sound, or input, I would pretty much guess that it's server-side, otherwise the client could corrupt/hack stuff.

Posted
2 hours ago, DragonITA said:

@Ugdhar, i should send a PacketBuffer, but i have a many questions: why and how.

Unfortunately, not something I've messed with yet, so I can't help you. I was just explaining how (I'm guessing) the other person was figuring it was server side..

Posted
4 hours ago, Ugdhar said:

Unfortunately, not something I've messed with yet, so I can't help you. I was just explaining how (I'm guessing) the other person was figuring it was server side..

Ok thanks, but now where can i find a tutorial about PacketBuffer: @Ugdhar, @Cadiboo, @desht or @loordgek???

New in Modding? == Still learning!

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements




×
×
  • Create New...

Important Information

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