Beispiel #1
0
 public void Start()
 {
     experiment        = new Experiment();
     Experiment.levels = levels;
     agentDatas        = new AgentData[Experiment.levels];
     inst = this;
     InitDisplay();
     agent = prefabAgent;
     experiment.DisplayTest(new int2(size.x, size.y));
 }
    public void SleepCluster(int simID, int2 aGridSize, float2 center, float radius, int quantity, Random aRandom)
    {
        var coords = Cluster(aGridSize, center, radius, quantity, aRandom);

        foreach (var c in coords)
        {
            SetPatchAt(c.x, c.y, simID, sleepPatch);
            EOSGrid.SetSleep(simID, c);
        }
    }
 protected override JobHandle OnUpdate(JobHandle inputDeps)
 {
     Entities
     .WithoutBurst()
     .ForEach((in Action action, in  FoodEnergy foodEnergy,
               in  SleepEnergy sleepEnergy, in PosXY posXY, in SimID simID, in Genome genome) => {
         EOSGrid.SetAgent(simID.Value, posXY.Value,
                          FoodEnergy.Fitness(foodEnergy.Value), SleepEnergy.Fitness(sleepEnergy.Value),
                          //foodEnergy.Value, sleepEnergy.Value,
                          action.Value, genome);
     }).Run();
    public void FoodCluster(int simID, int2 aGridSize, float2 center, float radius, int quantity, int minFood,
                            int maxFood, Random aRandom)
    {
        var coords = Cluster(aGridSize, center, radius, quantity, aRandom);

        foreach (var c in coords)
        {
            var patch = GetNewFoodPatch();
            SetPatchAt(c.x, c.y, simID, patch);
            em.SetComponentData(patch, new FoodArea()
            {
                Value = aRandom.NextInt(minFood, maxFood)
            });
            EOSGrid.SetFood(simID, c);
        }
    }