public ThisSystemJob( BufferTuple <NativeBuffer <PositionEntityStruct>, NativeBuffer <VelocityEntityStruct>, NativeBuffer <SpeedEntityStruct> > doofuses, float deltaTime) { _doofuses = doofuses; _deltaTime = deltaTime; }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var foods = entitiesDB.QueryEntities <PositionEntityStruct, MealEntityStruct>(GameGroups.FOOD); BufferTuple <NativeBuffer <PositionEntityStruct>, NativeBuffer <MealEntityStruct> > foodcount = foods.ToNativeBuffers <PositionEntityStruct, MealEntityStruct>(); JobHandle combinedDependencies = default; foreach (var doofusGroup in GameGroups.DOOFUSES.Groups) { var doofuses = entitiesDB .QueryEntities <PositionEntityStruct, VelocityEntityStruct, HungerEntityStruct>(doofusGroup); BufferTuple <NativeBuffer <PositionEntityStruct>, NativeBuffer <VelocityEntityStruct>, NativeBuffer <HungerEntityStruct> > bufferTuple = doofuses .ToNativeBuffers <PositionEntityStruct, VelocityEntityStruct, HungerEntityStruct>(); var deps = new LookingForFoodDoofusesJob(bufferTuple, foodcount).Schedule((int)doofuses.length, (int)(doofuses.length / 8), inputDeps); combinedDependencies = JobHandle.CombineDependencies(combinedDependencies, new DisposeJob <BufferTuple <NativeBuffer <PositionEntityStruct>, NativeBuffer <VelocityEntityStruct>, NativeBuffer <HungerEntityStruct> > >(bufferTuple).Schedule(deps)); } return(new DisposeJob <BufferTuple <NativeBuffer <PositionEntityStruct>, NativeBuffer <MealEntityStruct> > >(foodcount).Schedule(combinedDependencies)); }