Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PalmOfExcavationSkill {
- private static final ResourceLocation NAME = new ResourceLocation(EposAPI.ID, "palm_of_excavation");
- private static final List<String> validTypeStrings = new ArrayList<String>() {{
- add("pickaxe");
- add("shovel");
- add("axe");
- }
- };
- public static final Feat FEAT =
- FeatBuilder.start(NAME)
- .withEventHandler(PlayerEvent.BreakSpeed.class,
- ((breakSpeed, entity, iCharacterStats) -> {
- int level = CharacterHelper.getSkillLevel(NAME, iCharacterStats);
- float oldSpeed = Math.min(breakSpeed.getOriginalSpeed(), 1);
- ToolType toolType = breakSpeed.getState().getHarvestTool();
- if (validTypeStrings.get(0).equals(toolType.getName())) {
- breakSpeed.setNewSpeed((((level * 25f) / 100f) * oldSpeed) + breakSpeed.getNewSpeed());
- } else {
- breakSpeed.setNewSpeed((((level * 50f) / 100f) * oldSpeed) + breakSpeed.getNewSpeed());
- }
- }))
- .withEventHandler(PlayerEvent.HarvestCheck.class,
- ((harvestCheck, entity, iCharacterStats) -> {
- int level = CharacterHelper.getSkillLevel(NAME, iCharacterStats);
- BlockState state = harvestCheck.getTargetBlock();
- ToolType toolType = state.getHarvestTool();
- if (toolType != null && level >= state.getHarvestLevel() && validTypeStrings.contains(toolType.getName())) {
- harvestCheck.setCanHarvest(true);
- }
- }))
- .withEventHandler(FeatAcquiredEvent.class,
- (featAcquiredEvent, entity, iCharacterStats) -> {
- if (featAcquiredEvent.getFeatAcquired().getRegistryName().compareTo(NAME) == 0) {
- iCharacterStats.getSkills().putSkill(NAME);
- }
- }).finish();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement