JumpMixin.java
@Override public void readFromNbt(NbtCompound tag, RegistryWrapper.WrapperLookup registryLookup) this.energy = tag.getInt("energy");
@Mixin(ClientPlayerInteractionManager.class) public class BreakBlockMixin @Inject(method = "breakBlock", at = @At("HEAD")) private void onBreakBlock(BlockPos pos, CallbackInfoReturnable<Boolean> cir) MinecraftClient.getInstance().player.ifPresent(player -> EnergyComponent comp = EnergyClientMod.ENERGY.get(player); comp.onBreakBlock(); ); energy client minecraft
EnergyComponent energyComp = EnergyClientMod.ENERGY.get(client.player); int energy = energyComp.getEnergy(); int maxEnergy = energyComp.getMaxEnergy();
@Override public void registerEntityComponentFactories(EntityComponentFactoryRegistry registry) registry.registerForPlayers(ENERGY, EnergyComponent::new, RespawnCopyStrategy.ALWAYS_COPY); JumpMixin
Register in client initializer:
public void onJump() consume(COST_JUMP); public void onAttack() consume(COST_ATTACK); public void onBreakBlock() consume(COST_BREAK); EnergyComponent comp = EnergyClientMod.ENERGY.get(player)
private final PlayerEntity player; private int energy = MAX_ENERGY; private int lastWalkingX = 0; private int lastWalkingZ = 0;