41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| 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<Tutorial, ? extends TutorialStepInstance> constructor;
 | |
| 
 | |
| 	private <T extends TutorialStepInstance> TutorialSteps(final String name, final Function<Tutorial, T> 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;
 | |
| 	}
 | |
| }
 |