/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  net.minecraft.class_1297
 *  net.minecraft.class_2248
 *  net.minecraft.class_2338
 */
package meteordevelopment.meteorclient.pathing;

import java.util.function.Predicate;
import meteordevelopment.meteorclient.pathing.IPathManager;
import meteordevelopment.meteorclient.settings.BoolSetting;
import meteordevelopment.meteorclient.settings.Setting;
import meteordevelopment.meteorclient.settings.Settings;
import net.minecraft.class_1297;
import net.minecraft.class_2248;
import net.minecraft.class_2338;

public class NopPathManager
implements IPathManager {
    private final NopSettings settings = new NopSettings();

    @Override
    public String getName() {
        return "none";
    }

    @Override
    public boolean isPathing() {
        return false;
    }

    @Override
    public void pause() {
    }

    @Override
    public void resume() {
    }

    @Override
    public void stop() {
    }

    @Override
    public void moveTo(class_2338 pos, boolean ignoreY) {
    }

    @Override
    public void moveInDirection(float yaw) {
    }

    @Override
    public void mine(class_2248 ... blocks) {
    }

    @Override
    public void follow(Predicate<class_1297> entity) {
    }

    @Override
    public float getTargetYaw() {
        return 0.0f;
    }

    @Override
    public float getTargetPitch() {
        return 0.0f;
    }

    @Override
    public IPathManager.ISettings getSettings() {
        return this.settings;
    }

    private static class NopSettings
    implements IPathManager.ISettings {
        private final Settings settings = new Settings();
        private final Setting<Boolean> setting = new BoolSetting.Builder().build();

        private NopSettings() {
        }

        @Override
        public Settings get() {
            return this.settings;
        }

        @Override
        public Setting<Boolean> getWalkOnWater() {
            this.setting.reset();
            return this.setting;
        }

        @Override
        public Setting<Boolean> getWalkOnLava() {
            this.setting.reset();
            return this.setting;
        }

        @Override
        public Setting<Boolean> getStep() {
            this.setting.reset();
            return this.setting;
        }

        @Override
        public Setting<Boolean> getNoFall() {
            this.setting.reset();
            return this.setting;
        }

        @Override
        public void save() {
        }
    }
}

