package net.minecraft.client.tutorial; import java.util.function.Function; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @Environment(EnvType.CLIENT) public enum TutorialSteps { MOVEMENT("movement", MovementTutorialStepInstance::new), FIND_TREE("find_tree", FindTreeTutorialStepInstance::new), PUNCH_TREE("punch_tree", PunchTreeTutorialStepInstance::new), OPEN_INVENTORY("open_inventory", OpenInventoryTutorialStep::new), CRAFT_PLANKS("craft_planks", CraftPlanksTutorialStep::new), NONE("none", CompletedTutorialStepInstance::new); private final String name; private final Function constructor; private TutorialSteps(final String name, final Function constructor) { this.name = name; this.constructor = constructor; } public TutorialStepInstance create(Tutorial tutorial) { return (TutorialStepInstance)this.constructor.apply(tutorial); } public String getName() { return this.name; } public static TutorialSteps getByName(String name) { for (TutorialSteps tutorialSteps : values()) { if (tutorialSteps.name.equals(name)) { return tutorialSteps; } } return NONE; } }