Posted May 5, 20187 yr I am working on adding infections for the chickens in my mod, and one of the infections causes the chicken to attack the other chickens from the mod. I have gone about this various ways, and have seen that the target is getting added, but the chicken is not attacking the target like it supposed to be. The code is here on GitHub Edited May 5, 20187 yr by saxon564 Strikeout Original Post
May 6, 20187 yr Author I notice the first post didn't seem to really offer much information so I have reworked the post to be: I am working on adding infections for the chickens in my mod, and one of the infections causes the chicken to attack the other chickens from the mod. I have gone about this various ways, and have seen that the target is getting added, but the chicken is not attacking the target like it supposed to be. They still attack players like they are supposed to, just not other chickens. All my chickens extend from EntityMoChicken so they should all be valid targets. I have tried a specific chicken class and it still did not work. Is there something I am missing? The code is here on GitHub
May 8, 20187 yr Author Does anyone have an idea about what is going on? I am still trying to figure it out to no availe.
May 8, 20187 yr When debugging this sort of thing, you simply need to observe the execution. I usually do that by adding console print statements at every interesting point including printing out the values of key variables. In your setMadChickenDisease() method, you only set the attack AI if the bool parameter is true. However, are you sure that you are calling that method properly with bool value as true? To check that you should print out the value of bool as first line in that method. I suspect that you're having trouble with that because it looks like you call the method using some value you get from a tag compound so I have no idea if that is set properly. One other thing that comes to mind is that in your target task you have set the checkSight parameter to true. That is probably what you want, but it is possible that chickens, which have very low eye height, might have trouble actually seeing other chickens since maybe even grass could hide them or something. You might want to try setting that to false for testing purposes. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
May 8, 20187 yr Author I do have a line printing to the console if the bool is true and I do see that line while testing. I am also testing on a 3x3 platform near build height so I dont get any chickens spawning on the ground, so there is nothing obstructing their view. Though I have tried it with checkSight set to both true and false. Setting an attack target is such a simple thing to do, which is why I am so confused as to why it isnt working.
May 8, 20187 yr To continue to dig into it, you need to further observe the execution. You need to see if the AI shouldExecute() is getting called at all and if it is whether it is returning true. You should set a breakpoint on that method and use debug run mode in Eclipse to see if it hits that line (breaks) and then inspect the field values as well as step through the rest of the AI execution. Depending on what you find, there will be different solutions. If it isn't being called at all then it means that either the AI task isn't properly on the list, or that it is being pre-empted -- AI only runs depending on the priority combined with the mutex bits. For example, if certain other AI is already running it may never actually check your shouldExecute(). Anyway, using breakpoint and debug mode should tell you a lot about what is going on. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
May 9, 20187 yr Author So I found that only when the chicken is tamed, the list of possible near targets returns empty, even if the chickens are right next to each other, but if the chicken is not tamed, it does return a list with the closest chickens. The strange part is, if I comment out the taming code, the list will still return empty if the chicken is spawned in with an owner, though it doesnt know it is actually tamed. Edited May 9, 20187 yr by saxon564 More information
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.