RaustBD Posted June 25, 2012 Posted June 25, 2012 Hey guys. So, after a lot of thought, I've decided to use Forge for Doggy Talents, and there is one hook that I feel would be extremely useful, not just for me, but for others as well: An On-Load handler, which would execute script whenever an entity is first loaded, whether that be when you re-load a save game, when it naturally spawns, or when a spawner conjures it, etc. One of the biggest advantages to this would be the ability to add AI tasks to vanilla entities exactly once with little hassle. Basically, at the point where the targeting, swimming, attacking, etc. tasks are added to the entity on startup, I'd like to be able to add my own tasks to that list, so that, for example, creepers could be afraid of other entities besides cats, or zombies could be made to hunt down things besides players and villagers, such as allied entities/pets. This would be extremely useful to modders because AI tasks are ludicrously specific in their scope, and will pretty much ignore non-mod features entirely. Zombies have a task for chasing players, a task for chasing villagers, a task for damaging players on contact, and a task for damaging villagers on contact. Because the AI is so specific, these are literally the only things zombies are capable of attacking, which makes various allied entities overpowered in a non-fun way. Furthermore, unless it extends the entityOcelot class, nothing can scare a creeper, even if it's clearly a domesticated feline. These are just a few examples, I feel the utility of this hook would certainly be worth the effort to implement. Quote
OvermindDL1 Posted June 26, 2012 Posted June 26, 2012 What we need is a generic Entity joining world hook, whether by spawning in or being loaded. Such a hook would cover your use case (with a bit of reflection) *very* well, as well as many many other use cases. Would also be nice to have an entity removed from world hook too... Quote
RaustBD Posted June 26, 2012 Author Posted June 26, 2012 That would indeed suit my needs, the needs I described for others, and many more besides. I like it! Quote
RaustBD Posted June 26, 2012 Author Posted June 26, 2012 Also, I think it would be good if somebody made the AITasks in entityliving public instead of protected while they're at it, just to make things simpler for adding tasks. Quote
ScottKillen Posted June 26, 2012 Posted June 26, 2012 @RBD, any chance of adding sparrow to Forge? Quote
RaustBD Posted June 26, 2012 Author Posted June 26, 2012 On 6/26/2012 at 2:53 PM, ScottKillen said: @RBD, any chance of adding sparrow to Forge? I have no problems with that, though I'd have to discuss it with Lil' Avi, she authored part of it. Quote
ScottKillen Posted June 26, 2012 Posted June 26, 2012 It would make it easier to support Sparrow if it were...it seems installing things into the jar is a daunting task for some... Quote
RaustBD Posted June 26, 2012 Author Posted June 26, 2012 On 6/26/2012 at 3:32 PM, ScottKillen said: It would make it easier to support Sparrow if it were...it seems installing things into the jar is a daunting task for some... Yeah... But that's a bit off topic. Back on topic: What do you think of this hook? Quote
ScottKillen Posted June 26, 2012 Posted June 26, 2012 It would be extremely useful to be able to have more control over vanilla mobs and would seem to be a great answer to a vanilla design flaw. Quote
RaustBD Posted June 26, 2012 Author Posted June 26, 2012 Hm... should I update the title and OP with the revision proposed by overmindDL1? Quote
OvermindDL1 Posted June 26, 2012 Posted June 26, 2012 As for making the aitasks public, Lex would probably not do that if the class is not already edited since it is a one-liner to grab it anyway. Quote
RaustBD Posted June 26, 2012 Author Posted June 26, 2012 The class IS already edited. They're instantiated in entityliving, where all the handler hooks are Quote
Recommended Posts
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.