Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / Schedule.java
package net.minecraft.server;

import com.google.common.collect.Maps;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;

public class Schedule {

    public static final Schedule EMPTY = a("empty").a(0, Activity.IDLE).a();
    public static final Schedule SIMPLE = a("simple").a(5000, Activity.WORK).a(11000, Activity.REST).a();
    public static final Schedule VILLAGER_BABY = a("villager_baby").a(10, Activity.IDLE).a(3000, Activity.PLAY).a(6000, Activity.IDLE).a(10000, Activity.PLAY).a(12000, Activity.REST).a();
    public static final Schedule VILLAGER_DEFAULT = a("villager_default").a(10, Activity.IDLE).a(2000, Activity.WORK).a(9000, Activity.MEET).a(11000, Activity.IDLE).a(12000, Activity.REST).a();
    private final Map<Activity, ScheduleActivity> e = Maps.newHashMap();

    public Schedule() {}

    protected static ScheduleBuilder a(String s) {
        Schedule schedule = (Schedule) IRegistry.a(IRegistry.SCHEDULE, s, (Object) (new Schedule()));

        return new ScheduleBuilder(schedule);
    }

    protected void a(Activity activity) {
        if (!this.e.containsKey(activity)) {
            this.e.put(activity, new ScheduleActivity());
        }

    }

    protected ScheduleActivity b(Activity activity) {
        return (ScheduleActivity) this.e.get(activity);
    }

    protected List<ScheduleActivity> c(Activity activity) {
        return (List) this.e.entrySet().stream().filter((entry) -> {
            return entry.getKey() != activity;
        }).map(Entry::getValue).collect(Collectors.toList());
    }

    public Activity a(int i) {
        return (Activity) this.e.entrySet().stream().max(Comparator.comparingDouble((entry) -> {
            return (double) ((ScheduleActivity) entry.getValue()).a(i);
        })).map(Entry::getKey).orElse(Activity.IDLE);
    }
}