Commit graph

4 Commits

Autor SHA1 Nachricht Datum
Travis Watkins
40be9c8403 Optimized a little too much. Update goals every tick again to avoid AI oddness. 2012-04-24 23:20:29 -04:00
Travis Watkins
b7376e0865 Avoid doing unnecessary range checks when we're looping from start to end.
Make EntityLiving call AI logic every tick again.
Rework PathfinderGoalSelector logic.

Adds UnsafeList for use in places where we use ArrayList and know we won't
get index out of range errors. Added usage to World's tickEntities, Chunk's
entitySlices to speed up searching for entities, and to PathfinderGoalSelector
to speed up dealing with AI goals.

Reworked logic in PathfinderGoalSelector with help from fullwall. This code
no longer uses an extra ArrayList for setting up goals and only updates which
goals should be run every other time it is called.

Removed only calling PathfinderGoalSelector every other tick from EntityLiving
as we now only setup new goals every other tick. This ensures existing goals
run every tick to properly update mob movement.
2012-04-23 21:52:08 -04:00
Travis Watkins
e8459c1ff6 Optimize AI and EntityLiving ticking
Reduce usage of getCubes as it is an expensive call.
Remove iterator usage and object creation from PathfinderGoalSelector
methods as these are called very often.
Update EntityLiving goal selectors less often as this is still quite an
expensive task.
2012-04-21 23:53:10 -04:00
Travis Watkins
343f39b2b3 Add PathfinderGoalSelector for diff visibility 2012-04-21 23:52:38 -04:00